Cha*_*jee 11 java io buffer stream
我正在阅读有关Java IO的一些文档,只是想确定我是否正确:
无缓冲输入流:FileInputStream,InputStreamReader,FileReader
无缓冲输出流:FileOutputStream,OutputStreamWriter,FileWriter
缓冲输出流:PrintStream,PrintWriter
此外,我们还有BufferedInputStream,BufferedOutputStream,BufferedReader和BufferedWriter流,可将无缓冲的流转换为缓冲版本.
最后,我观察到了Character Streams,即.InputStreamReader,FileReader,OutputStreamWriter,FileWriter,在将字节发送到流之前为字节维护内部字节缓冲区.这个字节缓冲区不在我们的控制之下.因此,对于Character Streams,缓冲是指用于存储进出程序的字符的高级字符缓冲区.
我说的一切都是正确的吗?
PS - 我知道这个缓冲问题在某种程度上依赖于实现,但我只是想确认一下javadocs在说什么
经验法则:
任何直接从外部源(FileInputStream、SocketInputStream 等)读取的 InputStream / Reader 都是“原始”的,并且被认为是无缓冲的。(尽管实际上,可能会发生一些缓冲,具体取决于实现)
任何“原始”InputStream 或 Reader 都可以由 BufferedInputStream 或 BufferedReader 进行缓冲。
对于 OuputStreams / Writers 的假设相同。
其他流装饰器(即 GZIPInputStream、MD5InputStream、YourSpecialObjectWriter)可能会做一些缓冲,但它对缓冲源的危害不是很大。
| 归档时间: |
|
| 查看次数: |
6898 次 |
| 最近记录: |