应用程序把hello写入外部的文件 写入100000次(分别用BufferedOutputStream和FileOutputStre am性能)。
时间: 2023-12-25 15:48:28 浏览: 18
好的,我可以帮你回答这个问题。首先,BufferedOutputStream和FileOutputStream都是Java IO包中的类,用于将数据写入文件中。其中,FileOutputStream是最基本的文件写入类,它将数据直接写入文件中,而BufferedOutputStream则是在FileOutputStream的基础上添加了缓冲区,可以减少写入文件的次数,从而提高性能。
为了测试两者的性能,我们可以编写以下代码:
```java
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
long startTime = System.currentTimeMillis();
FileOutputStream fos = new FileOutputStream("test.txt");
for (int i = 0; i < 100000; i++) {
fos.write("hello".getBytes());
}
fos.close();
long endTime = System.currentTimeMillis();
System.out.println("FileOutputStream time: " + (endTime - startTime) + "ms");
startTime = System.currentTimeMillis();
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test.txt"));
for (int i = 0; i < 100000; i++) {
bos.write("hello".getBytes());
}
bos.close();
endTime = System.currentTimeMillis();
System.out.println("BufferedOutputStream time: " + (endTime - startTime) + "ms");
}
}
```
在上述代码中,我们分别使用FileOutputStream和BufferedOutputStream向文件中写入100000次"hello"字符串,并记录每次写入的时间。最后,输出两者的时间差异。
你可以尝试运行这段代码,并查看输出结果。一般情况下,BufferedOutputStream的性能会比FileOutputStream更好,因为它使用了缓冲区,可以减少写入文件的次数。