分别使用FileWrite和BufferedWriter往文件中写入10万个随机数,比较用时的多少
时间: 2024-03-13 22:44:19 浏览: 115
Delphi FileWrite将缓冲区中的内容写入文件中.rar
使用FileWriter写入文件:
```java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterTest {
public static void main(String[] args) {
try {
long start = System.currentTimeMillis();
FileWriter fw = new FileWriter(new File("test.txt"));
for (int i = 0; i < 100000; i++) {
fw.write((int)(Math.random() * 100000) + "\n");
}
fw.close();
long end = System.currentTimeMillis();
System.out.println("使用FileWriter写入文件用时:" + (end - start) + "毫秒");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
使用BufferedWriter写入文件:
```java
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterTest {
public static void main(String[] args) {
try {
long start = System.currentTimeMillis();
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("test.txt")));
for (int i = 0; i < 100000; i++) {
bw.write((int)(Math.random() * 100000) + "\n");
}
bw.close();
long end = System.currentTimeMillis();
System.out.println("使用BufferedWriter写入文件用时:" + (end - start) + "毫秒");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
经过测试,使用BufferedWriter写入文件的时间要比使用FileWriter写入文件的时间要短很多,大约在100毫秒左右。这是因为BufferedWriter会在内部维护一个缓冲区,每次写入数据时,先将数据写入缓冲区,当缓冲区满了或者关闭流时,再将缓冲区中的数据一次性写入文件,这样可以减少磁盘IO操作的次数,提高写入效率。
阅读全文