输出流
java的基本输出类是java.io.OutputStream; OutputStream的子类使用它提供的方法向某种特定的介质写入数据。
在于网络硬件中缓存一样,流还可以再软件中得到缓冲,我们可以通过BufferedOutputStream或BufferedWriter串链到底层流上来实现。一般情况下如果缓冲区的流没有填充满,这个流将不会执行发送,我们可以通过flush()来强制缓冲流发送。
输入流
java的基本输入类是java.io.InputStream; InputStream的子类使用它提供的方法从某种特定的介质读取数据。
标记和重置:为了重新读取数据,可以使用mark()方法标记当前位置。在以后的某个时刻可以用reset()方法把流重置到之前标记的位置。并不是所有的输入流类都可以支持该方法,可以使用markSupported()来做判断。目前java.io中仅有两个支持标记输入流类:BufferedInputStream和ByteArrayInputStream,而其它流需要先串链到缓冲的输入流才可以使用该标记。
过滤器流
使用字节来传送数据是相当缓慢和复杂的,效率也会很低,所有java提供很多过滤器类来包装基本的流,可以让该流的原始字节和各种格式之间来回转换。
阅读器和书写器
Writer类是java.io.OutputStream类的映射。它的子类可以实现对字符的写入。
Reader类是java.io.InputStream类的镜像。它的子类可以实现对字符的读取和一些编码工作。