我要使用java完成文件的读取,读到数字500开始计算,把500之后的500个数字存入一个数组中,然后会进行一些运算,得到三个结果,再把这三个结果写入文件里
时间: 2024-01-02 11:03:26 浏览: 62
好的,下面是一个Java代码示例,实现了你的需求:
```java
import java.io.*;
import java.util.*;
public class FileOperation {
public static void main(String[] args) {
// 定义要读取的文件路径
String filePath = "input.txt";
try {
// 创建文件读取器
FileReader fileReader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
// 定义变量
int count = 0;
boolean startCount = false;
List<Integer> list = new ArrayList<>();
// 读取文件内容并处理
String line;
while ((line = bufferedReader.readLine()) != null) {
if (!startCount) {
if (line.contains("500")) {
startCount = true;
}
} else {
int num = Integer.parseInt(line);
list.add(num);
count++;
if (count == 500) {
break;
}
}
}
// 进行运算
int sum = 0;
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int i = 0; i < list.size(); i++) {
sum += list.get(i);
max = Math.max(max, list.get(i));
min = Math.min(min, list.get(i));
}
double avg = sum / (double) list.size();
// 输出结果
System.out.println("sum: " + sum);
System.out.println("avg: " + avg);
System.out.println("max: " + max);
System.out.println("min: " + min);
// 创建文件写入器
FileWriter fileWriter = new FileWriter("output.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// 写入结果
bufferedWriter.write("sum: " + sum + "\n");
bufferedWriter.write("avg: " + avg + "\n");
bufferedWriter.write("max: " + max + "\n");
bufferedWriter.write("min: " + min + "\n");
// 关闭文件写入器
bufferedWriter.close();
fileWriter.close();
// 关闭文件读取器
bufferedReader.close();
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上面的代码中,首先定义了要读取的文件路径。然后使用文件读取器和缓冲读取器来读取文件内容,并按照要求处理。将读取到的数字存入一个数组中,直到读取到500个数字或者文件结束为止。然后对这些数字进行统计运算,得到三个结果。最后,创建文件写入器和缓冲写入器,将结果写入到文件中。注意,这里只是简单地将结果写入到文件中,如果需要更加复杂的输出格式,可以自行进行调整。
阅读全文