用Java向文件中写入10个数据,第i个数据=圆周率*i(i=0, 1, 2, …, 9),然后将第2个(i=2)改为0,最后将10个数据全部输出
时间: 2024-02-06 15:09:07 浏览: 42
可以按照以下步骤实现:
1. 创建一个文件输出流对象并指定输出文件的路径
2. 使用循环向文件中写入10个数据,第i个数据=圆周率*i(i=0, 1, 2, …, 9)
3. 关闭文件输出流
4. 创建一个文件输入流对象并指定输入文件的路径
5. 使用循环读取文件中的10个数据
6. 将第2个(i=2)改为0
7. 关闭文件输入流
8. 再次打开文件输出流
9. 使用循环向文件中写入修改后的10个数据
10. 关闭文件输出流
以下是完整的代码示例:
```java
import java.io.*;
public class WriteAndReadFile {
public static void main(String[] args) {
try {
// 创建文件输出流对象并指定输出文件的路径
FileOutputStream fos = new FileOutputStream("data.txt");
// 使用循环向文件中写入10个数据,第i个数据=圆周率*i(i=0, 1, 2, …, 9)
for (int i = 0; i < 10; i++) {
double data = Math.PI * i;
fos.write((data + "\n").getBytes());
}
// 关闭文件输出流
fos.close();
// 创建文件输入流对象并指定输入文件的路径
FileInputStream fis = new FileInputStream("data.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
// 使用循环读取文件中的10个数据
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
// 将第2个(i=2)改为0
String[] dataArray = sb.toString().split("\n");
dataArray[2] = "0.0";
// 关闭文件输入流
br.close();
isr.close();
fis.close();
// 再次打开文件输出流
fos = new FileOutputStream("data.txt");
// 使用循环向文件中写入修改后的10个数据
for (String data : dataArray) {
fos.write((data + "\n").getBytes());
}
// 关闭文件输出流
fos.close();
// 打印输出修改后的10个数据
fis = new FileInputStream("data.txt");
isr = new InputStreamReader(fis);
br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
isr.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
运行上述代码后,会输出修改后的10个数据。
阅读全文