java IO练习:随机生成1000个[50,1000)的整数,按照每行10的方式,输出到文件中,并依次读出文件中每行的首个数字累计求和并输出。
时间: 2024-03-11 10:51:50 浏览: 308
好的,我会为你提供Java的IO练习代码来完成这个任务。
```java
import java.io.*;
import java.util.Random;
public class Main {
public static void main(String[] args) {
// 生成随机整数
Random random = new Random();
int[] nums = new int[1000];
for (int i = 0; i < nums.length; i++) {
nums[i] = random.nextInt(950) + 50;
}
// 写入文件
try (FileWriter writer = new FileWriter("numbers.txt");
BufferedWriter bw = new BufferedWriter(writer)) {
for (int i = 0; i < nums.length; i++) {
bw.write(nums[i] + " ");
if ((i + 1) % 10 == 0) {
bw.newLine();
}
}
} catch (IOException e) {
e.printStackTrace();
}
// 读取文件并累计求和
int sum = 0;
try (FileReader reader = new FileReader("numbers.txt");
BufferedReader br = new BufferedReader(reader)) {
String line;
while ((line = br.readLine()) != null) {
String[] numStrs = line.split(" ");
sum += Integer.parseInt(numStrs[0]);
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("每行首个数字累计求和为:" + sum);
}
}
```
这个程序会在当前目录下生成一个名为“numbers.txt”的文件,其中包含随机生成的整数。然后程序会读取这个文件,并计算每行首个数字的累计和。
值得注意的是,在文件写入时,我们使用了缓冲流来提高写入性能,而在文件读取时也使用了缓冲流来提高读取性能。同时,在写入时,我们使用了`bw.newLine()`方法来实现每10个数字换一行的效果。在读取时,我们使用了`line.split(" ")`方法来将每行的数字分隔开来,然后取第一个数字进行累加。
阅读全文