java的输入输出流总结

最底层 InputStream和OutputStream 基于字节流,没有缓存机制,一般用BufferInputStream和BufferOutputStream进行封装后使用。BufferInputStream的read方法是阻塞线程的,BufferInputStream.read(buf) 会将输入流内的全部读入buf之后才返回。。
BufferOutputStream.write(buf);会讲buf中的内容输出到输出流,但是记得要flush
还有个比较好用的PrintStream 和PrintWriter相似 可以自动刷新 只不过是对于字节流而言

字节流一般用于传送二进制文件之类 至于字符流常常用reader进行包装后使用
最常用的有BufferInputStreamReader和PrintWrinter 前者的readline方法很实用 遇到\r\d会自动flush
后者只要在构造函数中设置了刷新属性为true则其println方法可以自动刷新 不用flush

如果要控制输出流的编码问题 应该用DataInputStream 具体的没深究

available方法很好用

你可能感兴趣的:(JavaSE)