我经历了一些关于Java IO的文件,只是想确认我是否可以得到这个权利:缓冲和无缓冲流在Java中
无缓冲输入流:的FileInputStream,InputStreamReader的,的FileReader
无缓冲输出流:FileOutputStream中,OutputStreamWriter,FileWriter的
缓冲输出流:为PrintStream,PrintWriter的
另外,我们有BufferedInputStream,BufferedOutputStream,BufferedReader和BufferedWriter流来将未缓冲的流转换成缓冲版本。
最后,我观察到对于字符流,即字符流。 InputStreamReader,FileReader,OutputStreamWriter,FileWriter,一个内部字节缓冲区在它们被发送到流之前被维护。这个字节缓冲区不在我们的控制之下。因此,对于字符流,缓冲是指用于存储进入和离开程序的字符的高级字符缓冲区。
我说的一切都正确吗?
P.S. - 据我所知,这个缓冲问题是有些依赖于实现的,但我只是想确认的javadoc在说什么经验
听起来或多或少是对的,但是你应该依赖它在Javadoc中所说的内容,而不是其他人所说的。实施必须按照Javadoc中的说法进行。你遗漏了'ObjectOutputStream',它们都被缓冲了,这取决于它究竟在做什么。您也忽略了过滤器流和读者。 – EJP
还没有去那么远;) – Chatterjee
我喜欢这个问题。没有问题要解决,只是寻求理解。这很令人耳目一新。 –