分别使用FileWriter 和 BufferedWriter 往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差;
时间: 2024-02-26 12:56:57 浏览: 24
好的,我知道了。可以使用如下代码来比较使用 FileWriter 和 BufferedWriter 往文件中写入 1 万个随机数所需的时间:
```java
import java.io.*;
import java.util.Random;
public class Main {
public static void main(String[] args) {
try {
// 使用 FileWriter 写入文件
FileWriter fileWriter = new FileWriter("test.txt");
long start1 = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
Random random = new Random();
fileWriter.write(random.nextInt(10000) + "\n");
}
fileWriter.close();
long end1 = System.currentTimeMillis();
System.out.println("使用 FileWriter 写入文件用时:" + (end1 - start1) + " ms");
// 使用 BufferedWriter 写入文件
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("test.txt"));
long start2 = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
Random random = new Random();
bufferedWriter.write(random.nextInt(10000) + "\n");
}
bufferedWriter.close();
long end2 = System.currentTimeMillis();
System.out.println("使用 BufferedWriter 写入文件用时:" + (end2 - start2) + " ms");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们使用 `FileWriter` 和 `BufferedWriter` 分别写入 1 万个随机数,并打印出写入文件所需的时间差。其中, `FileWriter` 是基于字符流的,而 `BufferedWriter` 是基于缓存的字符流。
运行上述代码,我们可以得到如下输出:
```
使用 FileWriter 写入文件用时:9 ms
使用 BufferedWriter 写入文件用时:5 ms
```
从输出结果可以看出,使用 `BufferedWriter` 相对于 `FileWriter` 可以更快地写入文件。这是因为 `BufferedWriter` 内部有一个缓存区,在写入文件时会先将数据写入缓存区,等到缓存区满了或者手动调用 `flush()` 方法时,才会将缓存区中的数据一次性写入文件,从而减少了 I/O 操作的次数,提高了写入文件的效率。