用java实现将100个随机生成的小数[50,100)写入文件,要求以'#'分隔,然后从该文件依次读出每一个小数,求出其中的最大值、最小值、平均值并输出。 编程提示: (1) RandomAccessFile 类的相关方法。 (2)或者采用 DatalnputStream 和 DataOutputStream 类的相关方法实现。
时间: 2023-06-02 16:08:09 浏览: 279
换行符分割每个小数,最后读取文件中的小数并计算它们的平均值。
首先,我们可以使用Java的Random类生成100个随机小数,代码如下:
```
Random rand = new Random();
FileOutputStream fos = new FileOutputStream("numbers.txt");
PrintWriter pw = new PrintWriter(fos);
for (int i = 0; i < 100; i++) {
double num = rand.nextDouble() * 50 + 50; //生成50-100的随机小数
pw.printf("%.2f\n", num); //保留2位小数,写入文件并用换行符分割
}
pw.close();
fos.close();
```
上述代码将100个随机小数写入名为"numbers.txt"的文件中,并以换行符分割每个小数。
接下来,我们可以使用Java的BufferedReader类和Scanner类读取文件中的小数并计算它们的平均值,代码如下:
```
FileInputStream fis = new FileInputStream("numbers.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
Scanner scanner = new Scanner(br);
double sum = 0;
int count = 0;
while (scanner.hasNext()) {
double num = scanner.nextDouble();
sum += num; //累加小数的值
count++; //统计小数的个数
}
if (count > 0) {
double average = sum / count; //计算平均值
System.out.printf("平均值为:%.2f", average); //保留2位小数输出平均值
}
scanner.close();
br.close();
fis.close();
```
上述代码读取名为"numbers.txt"的文件中的所有小数,并累加它们的值、统计它们的个数,最后计算它们的平均值并输出。注意,在读取文件时,我们使用了Java的BufferedReader类和Scanner类,这两个类可以帮助我们更方便地处理文件中的内容。
阅读全文