JAVA-IO流

1:根据流的流向分为2类:输入流(InputStream,Reader),输出流(OutputStream,Writer)
2:根据流处理的数据的单元不同分为2类:字节流(只能以字节的方式去处理流中的数据,字节流的功能更强大 InputStream,OutputStream),
字符流(以字符为单位处理数据,只能处理文本 Reader Writer)。
3:根据处理的数据源的不同的分类:直接和数据源打交道的流,叫做节点流(FileInputStream FileOutputStream)。
不直接和数据源打交道的流,包装流、处理流(BufferedInputStream BufferedOutputStream)。
节点流所提供的接口比较有限,功能相对较少,不能很好的满足用户的需求。包装流提供了更好的接口,能更好的帮助用户处理流中的数据。

FileInputStream FileOutputStream :字节输入输出流
FileReader FileWriter :字符输入输出流
BufferedInputStream BufferedOutputStream :带缓冲区的字节输入输出流
BufferedReader BufferedWriter :带缓冲区的字符输入输出流
InputStreamReader OutputStreamWriter :转换流
PrintStream(System.out) PrintWriter :打印字符流
DataInputStream DataOutputStream :可以处理八种基本数据类型+String类型的流。
ObjectInputStream ObjectOutputStream :用来处理对象类型的流。readObject 和 writeObject
ByteArrayInputStream ByteArrayOutputStream :带字节数组缓冲区的流 流关闭后,缓冲区内的数据仍然可以使用。

1:File类的对象对应着一个目录,或者是一个磁盘上的文件。目录和文件可能存在,也可能不存在。
只能创建删除目录或者是文件。不能读取和写入文件。

2流的概念:数据传递的通道。

3:流的分类:3大类。
1:根据流向:输入输出流
2:根据数据源不同:节点流、处理流、包装流。
3:处理的数据单元不同:字节流、字符流。字节流的功能更加强大。

4:InputStream OutputStream 所有字节流的父类。都是抽象类。
5:Reader Writer 所有字符流的父类 ,都是抽象类。

6:FileInputStream FileOutputStream 文件字节输入输出流。节点流。
7:FileReader FileWriter 文件字符输入输出流 节点流

8:BufferedInputStream BufferedOutputStream 带缓冲区的。8192 字节。包装流,字节流。
9:BufferedReader BufferedWriter 带缓冲区的。8192 字符。包装流,字符流。

10:转换流:从字节到字符的转换流 InputStreamReader OutputStreamWriter 字符流。

11:打印流:只有输出流 PrintStream(System.out) PrintWriter打印字符流。

12:DataInputStream DataOutputStream 可以处理八种基本数据类型+String类型的流。

13:ObjectInputStream ObjectOutputStream 用来处理对象类型的流。readObject 和 writeObject

关于序列化:从对象到字节码(序列化) 从字节码到对象(反序列化)
什么样的类型可以进行序列化:实现了Serializable接口的类型的对象可以进行序列化。Externalizable是Serializable子接口。
Externalizable 自定义序列化的时候使用。

什么样的数据成员不能被序列化:static 修饰的成员。transient修饰的成员也不能被序列化。

14:ByteArrayInputStream ByteArrayOutputStream 带字节数组缓冲区的流。
特点:流关闭后,缓冲区内的数据仍然可以使用。

猜你喜欢

转载自blog.csdn.net/qq_37131111/article/details/79677489