编写一个Java程序包括 1.产生50个1~9999之间的随机整数,将其存入到文本文件test.txt中。 2.从文件中读取这50个整数,并计算其最大值、最小值和平均值。
时间: 2025-02-05 16:11:59 浏览: 37
以下是一个满足您要求的Java程序示例:
```java
import java.io.*;
import java.util.Random;
public class RandomNumberProcessor {
private static final int COUNT = 50;
private static final int MAX_VALUE = 9999;
public static void main(String[] args) {
try {
// 1. 产生50个1~9999之间的随机整数,并存入test.txt
generateRandomNumbers("test.txt", COUNT, MAX_VALUE);
// 2. 从文件中读取这50个整数,并计算其最大值、最小值和平均值
processNumbers("test.txt");
} catch (IOException e) {
System.out.println("文件操作出错: " + e.getMessage());
}
}
// 生成随机数并写入文件的方法
private static void generateRandomNumbers(String filename, int count, int maxValue) throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
Random rand = new Random();
for (int i = 0; i < count; i++) {
int number = rand.nextInt(maxValue) + 1; // 生成1~maxValue之间的随机数
writer.write(Integer.toString(number));
if (i < count - 1) {
writer.newLine();
}
}
writer.close();
System.out.println("随机数已生成并写入文件:" + filename);
}
// 从文件读取数据并处理的方法
private static void processNumbers(String filename) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));
int number;
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
long sum = 0;
int count = 0;
String line;
while ((line = reader.readLine()) != null) {
number = Integer.parseInt(line);
if (number > max) {
max = number;
}
if (number < min) {
min = number;
}
sum += number;
count++;
}
reader.close();
double average = (double) sum / count;
System.out.println("最大值: " + max);
System.out.println("最小值: " + min);
System.out.printf("平均值: %.2f\n", average);
}
}
```
这个程序包含以下主要部分:
1. `generateRandomNumbers` 方法:生成指定数量的随机数并写入文本文件。
2. `processNumbers` 方法:从文本文件中读取数字,并计算最大值、最小值和平均值。
3. `main` 方法:程序的入口,首先调用 `generateRandomNumbers` 方法生成随机数并写入文件,然后调用 `processNumbers` 方法处理文件中的数据。
4. 异常处理:使用 try-catch 块来捕获并处理可能的 I/O 异常。
运行这个程序后,它会在当前目录生成一个名为 "test.txt" 的文件,里面包含 50 个 1 到 9999 之间的随机整数。然后,程序会从文件中读取这些数字,并输出它们的最大值、最小值和平均值。
阅读全文