IO练习:随机生成1000个[50,1000)的整数,按照每行10的方式,输出到文件中,并依次读出文件中每行的首个数字累计求和并输出。
时间: 2024-03-11 07:50:44 浏览: 59
好的,这是一个比较典型的IO操作题目,需要使用Java的随机数生成、文件IO读写等知识点。下面是一种可能的实现方式:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;
public class RandomNumbers {
public static void main(String[] args) throws FileNotFoundException {
// 生成随机数并写入文件
PrintWriter writer = new PrintWriter(new File("random_numbers.txt"));
Random random = new Random();
for (int i = 0; i < 1000; i++) {
int num = random.nextInt(950) + 50;
writer.printf("%d ", num);
if ((i + 1) % 10 == 0) {
writer.println();
}
}
writer.close();
// 读取文件并累计求和
Scanner scanner = new Scanner(new File("random_numbers.txt"));
int sum = 0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
Scanner lineScanner = new Scanner(line);
int num = lineScanner.nextInt();
sum += num;
lineScanner.close();
}
scanner.close();
// 输出结果
System.out.printf("文件中每行的首个数字累计求和为:%d\n", sum);
}
}
```
这里我们使用了Java标准库中的Random类来生成随机数,使用PrintWriter类将随机数输出到文件中,使用Scanner类从文件中读取数据并累计求和。注意,这里的实现中,每行输出10个数字,数字之间用空格分隔,每行以换行符结束。在读取文件时,我们先读取整行数据,再使用Scanner类分割每一行的数字,并取出每行的首个数字进行累加求和。
阅读全文