我想知道FileWriter是否被缓冲.
在这个 SO问题中,似乎它是,但是在这个 SO问题中似乎不是.(每次写(...)被调用时它将是一个系统调用.
所以基本上阅读那两个Q&A我有点困惑.有人能够清楚地解释出来吗?
提前致谢.
编辑:问题通过阅读来解决这个 API由本人引用的相关部分:
每次调用write()方法都会导致在给定字符上调用编码转换器.生成的字节在写入底层输出流之前累积在缓冲区中.可以指定此缓冲区的大小,但默认情况下,它足够大,可用于大多数用途.请注意,传递给write()方法的字符不会被缓冲.
为了获得最高效率,请考虑在BufferedWriter中包装OutputStreamWriter,以避免频繁的转换器调用.例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
由于FileWriter扩展了OutputStreamWriter,它也适用于它.
谢谢你的时间,我知道我问了一些非常具体的事情.
mor*_*s05 -1
我建议始终使用 BufferedWriter。它允许你控制实际的缓冲区大小,并且可以保证无论你使用什么JVM,IO都会被缓冲,这带来了巨大的IO性能提升。
| 归档时间: |
|
| 查看次数: |
7374 次 |
| 最近记录: |