如题所述
以下是一些常用的面向字符的输入流:FileReader、BufferedReader、StringReader、CharArrayReader、PipedReader。
1、FileReader:`FileReader`用于从文件中读取字符流。它继承自`FileReader`,可以按字符读取文件内容。
代码示例:Reader reader= new FileReader("example.txt")。
2、BufferedReader:`BufferedReader`是`Reader`的包装类,它可以提供缓冲机制,提高读取效率。
代码示例:Reader fileReader= new FileReader("example.txt")。
BufferedReader bufferedReader= new BufferedReader(fileReader);
3、StringReader:`StringReader`用于从字符串中读取字符流。
代码示例:StringReader stringReader= new StringReader("Hello,World!")。
4、CharArrayReader:`CharArrayReader`用于从字符数组中读取字符流。
代码示例:char[]charArray={'H','e','l','l','o'};CharArrayReader charArrayReader= new CharArrayReader(charArray)。
5、PipedReader:`PipedReader`和`PipedWriter`结合使用,用于线程之间的字符流通信。
代码示例:PipedReader pipedReader= new PipedReader()。
输入流和输出流的区别
1、数据流向
输入流(Input Stream):输入流用于从外部数据源(例如文件、网络、内存等)读取数据到程序中。数据的流向是从外部到程序内部,程序可以通过输入流获取外部的数据,然后在程序中进行处理和分析。
输出流(Output Stream):输出流则用于将程序中的数据写入到外部存储或其他目的地。数据的流向是从程序内部到外部,程序通过输出流将处理过的数据发送到外部存储或其他设备。
2、处理方向
输入流(读取):输入流主要用于读取外部数据到程序中,它提供了一系列方法来从数据源中读取字节、字符或其他数据单元。
输出流(写入):输出流主要用于将程序中的数据写入到外部,提供了一系列方法来将字节、字符或其他数据单元写入到目标位置。
3、主要类别
输入流的主要类别:InputStream及其子类(如FileInputStream、ByteArrayInputStream)用于字节流读取,Reader及其子类(如FileReader、StringReader)用于字符流读取。
输出流的主要类别:OutputStream及其子类(如FileOutputStream、ByteArrayOutputStream)用于字节流写入,Writer及其子类(如FileWriter、StringWriter)用于字符流写入。
4、应用场景
输入流的应用场景:用于读取文件内容、从网络接收数据、处理用户输入、解析数据等。
输出流的应用场景:用于将数据写入文件、通过网络发送数据、生成输出报告、序列化数据等。