当前位置: 首页 > 知识库问答 >
问题:

FileWriter vs BufferedWriter

贝德辉
2023-03-14

我想知道FileWriter是否缓冲。

在这个SO问题中,它似乎是,然而在这个SO问题中,它似乎不是。(这将是每次写入(...)被调用时的系统调用。

所以基本上读这两个问题

提前感谢。

编辑:通过阅读此API解决了问题,我引用了相关部分:

每次调用write()方法都会导致对给定字符调用编码转换器。在写入底层输出流之前,生成的字节在缓冲区中累积。可以指定此缓冲区的大小,但默认情况下,它对于大多数用途来说都足够大。请注意,传递给write()方法的字符不会被缓冲。

为了获得最高效率,请考虑将OutputStreamWriter包装在BufferedWriter中,以避免频繁调用转换器。例如:

Writer out=new BufferedWriter(new OutputStreamWriter(System.out));

由于FileWriter扩展了OutputStreamWriter,它也适用于它。

不过,谢谢你的时间,我知道我问了一些非常具体的问题。

共有2个答案

易宣
2023-03-14

FileWriter未缓冲,您必须使用BufferedWriter作为包装:

final int myBufferSize = 2048;

Writer myWriter = new BufferedWriter(new FileWriter, myBufferSize);
景俊良
2023-03-14

我建议总是使用缓冲写入程序。它允许您控制实际的缓冲区大小,并且您可以保证,无论使用何种JVM,IO都将被缓冲,这将极大地提高IO性能。

 类似资料:

相关问答

相关文章

相关阅读