FileWrite有缓冲区吗
时间: 2023-05-23 07:06:27 浏览: 99
A:是的,FileWrite函数有一个内置的缓冲区,可以提高写入效率。当调用FileWrite函数时,数据会首先写入缓冲区中,当缓冲区被填满或文件被关闭时,数据才会被写入到文件中。如果需要立即将数据写入到文件中,可以使用FileFlush函数来强制刷新缓冲区。
相关问题
分别使用FileWrite和BufferedWriter往文件中写入10万个随机数,比较用时的多少
使用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操作的次数,提高写入效率。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)