Java中的缓冲和未封闭的溪流



我正在浏览Java IO上的一些文档,只是想确保我是否正确理解:

未封闭的输入流:FileInputStream,InputStreamReader,FileReader

未封闭的输出流:fileOutputstream,outputStreamWriter,filewriter

缓冲输出流:printstream,printwriter

此外,我们还有BufferedInputStream,BufferedOutputStream,BufferedReader和BufferedWriter Streams,以将未封闭的流转换为缓冲版本。

最后,我观察到,对于字符流,即。InputStreamReader,fileReader,outputStreamWriter,filewriter,在将其发送到流中之前,要为字节维护内部字节屏障。这个字节屏蔽器不在我们的控制之下。因此,对于角色流,缓冲是指用于存储字符进出程序的高级角色缓冲区。

我说的一切正确吗?

P.S。 - 我知道这个缓冲问题在某种程度上取决于实施,但我只是想确认Javadocs在说

经验法则:

  1. 直接从外部源(FileInputStream,socketInputStream等)读取的任何InputStream/读取器都是"原始",并且被认为没有被掩盖。(尽管实际上,可能正在进行一些缓冲,取决于实现)

  2. 任何" RAW" InputStream或Reader都可以通过BufferedInputStream或BufferedReader进行缓冲。

  3. 对Ouputstreams/Writers的假设相同。

  4. 其他流动装饰器(即gzipinputstream,md5inputstream,yourspecialObjectWriter)可能会进行一些缓冲,但对缓冲源的缓冲并不非常有害。

相关内容

  • 没有找到相关文章

最新更新