Java|Java:理解Java中的字节流和字符流( 二 )


PipedOutputStream:这个类的一个实例为输出字节提供了一个管道或缓冲区 , 它以先进先出的方式工作 。
字符流类
在字符流类层次结构的顶部 , 有两个抽象类:面向字符输入的Reader和面向字符输出操作的Writer 。 分层布局如下:
Reader:用于读取字符流的顶级抽象类 。
BufferedReader:在从字符输入流读取文本时提供中间缓冲区以提高效率 。

LineNumberReader:使用缓冲的字符输入流来跟踪行号 。
CharArrayReader:实现可用作阅读器的自动递增字符缓冲区 。
FilterReader:该类的一个实例用于读取字符文件 。
PushbackReader:这使字符能够在读取后被推回流中 。
InputStreamReader:这个类的一个实例提供了从字节流到字符流的桥梁 。 使用指定的字符集将字节解码为字符 。
FileReader:该类的一个实例用于读取字符文件 。
PipedReader:对字符输入流使用管道 。
StringReader:来自源字符串的字符输出流读取器 。
Writer:写入字符流的顶级抽象类 。
BufferedWriter:在将文本写入字符输出流时提供中间缓冲区以提高效率 。
CharArrayWriter:实现可用作写入器的自动递增字符缓冲区 。
FilterWriter:用于编写过滤字符流的抽象类 。
OutputStreamWriter:这个类的一个实例提供了字符流和字节流之间的桥梁 。 使用指定的字符集将字符编码为字节 。
FileWriter:该类的一个实例用于写入字符文件 。
PipedWriter:使用管道进行字符输出流 。
PrintWriter:将对象的格式化表示打印到测试输出流 。
StringWriter:字符输出流被收集在字符串缓冲区中 , 可用于构造字符串 。
预定义流
Java 提供了三个预定义的流对象:in、out和err , 它们在java.lang包的System类中定义 。 out对象是指标准输出流或控制台 。 in对象指的是标准输入 , 也就是键盘 。 而且 , err对象指的是标准错误 , 它也只是控制台 。 应该很明显 , 它们可能被重定向到任何其他兼容的I/O设备 , 因为System.in只不过是InputStream的一个对象 , 而System.out和System.err是PrintStream类的对象 。 因此 , 它们基本上工作在面向字节的流上 , 尽管我们可以使用它们在控制台中读取和写入字符 。
结论
Java 流充当文件处理包装器 , 根据相应的I/O结构进行操作 。 在许多情况下 , 面向字符的流类和面向字节的流类的功能非常相似 。 但是 , 这并不意味着它们没有区别 。 java.io包中定义的流类相当简单且不复杂 , 但它们确实起到了作用 。