输入流inputStream:只能从中读取字节数据,而不能向其写出数据
输出流OutputStream:只能向其写入字节数据,而不能从中读取数据
输入流inputStream:
1. dataOutputStream创建一个新的数据输出流,将数据写入指定基础输出流。
2. printStream是一个字节打印流
3. bufferedOutputStream:实现缓冲。
4. FileOutputStream是用于将数据写入 File 或 FileDescriptor 的输出流,是用于写入诸如图像数据之类的原始字节的流。
5. ObjectOutputStream;用于读取(重构)对象。
6. pipedOutputStream创建尚未连接到管道输入流的管道输出流。
7. byteArrayOutputStream实现了一个输出流,其中的数据被写入一个 byte 数组。
输出流OutputStream:
1. pushBackInputStream为另一个输入流添加性能,
2. BufferedInputStream为另一个输入流添加一些功能
3. lineNumberInputStream是一个输入流过滤器,它提供跟踪当前行号的附加功能
4. FileInputStream负责从文件或另一些更特殊的地方读入字节数据。
5. ObjectInputStream对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
7. SequenceInputStream表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
8. StringBufferInputStream创建一个字符串输入流
9. ByteArrayInputStream创建一个涵内部缓冲区的流
Reader:用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。
1.FileReader用于处理文件的字符读取流对象。
2.LineNumberReader使用默认输入缓冲区的大小创建新的行编号
3.pushBackReader允许将字符推回到流的字符流 reader
4.PipedReader创建传送的字符输入流。
5.CharArrayReader实现一个可用作字符输入流的字符缓冲区
6.StringReader是一个字符串的字符流
7.InputStreamReader字节到字符的桥梁,可从底层输入流读取一个或多个字节
8.BufferedReader创建一个缓冲字符输入流
9.FilterReader用于读取已过滤的字符流的抽象类,提供一些将所有请求传递给所包含的流的默认方法
Writer写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。
1. FileWriter处理文件的字符写入流对象。
2. BufferedWriter将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
3. CharArrayWriter实现一个可用作 Writer 的字符缓冲区
4. StringWriter一个可以用它回收在字符串缓冲区中的输出来构造字符串的字符流。 关闭 StringWriter 无效。此类中的方法在关闭该流后仍可被调用,而不会产生任何 IOException。
5. OutputStreamWriter字符到字节的桥梁。
6. PrintWriter负责将字节“组装”成更有用的数据类型。
7. PipedWriter传送的字符输出流。创建一个尚未连接到传送 reader 的传送 writer。
8. FilterWriter用于写入已过滤的字符流的抽象类。
特点:可以将多个读取流合并成一个流。这样操作起来很方便。
原理:其实就是将每一个读取流对象存储到一个集合中。最后一个流对象结尾作为这个流的结尾。
作用:可以用于多个数据的合并。