天天看点

输入流:InputStream和reader;

输出流:OutputStream和Writer;

按处理数据单元分:

字节流: byte[] InputStream和OutputStream;

字符流:reader和Writer;

按功能分:

节点流:可以直接从数据源或目的地读写数据。

处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装,目的主要是简化操作和提高性能,辅助节点流。

文本文件的读写:char[]

用FileInputStream和FileOutputStream读写;

用BufferedReader和BufferedWriter读写;

二进制文件的读写:

用DataInputStream和DataOutputStream读写;

对象的读写:

用ObjectInputStream和ObjectOutputStream读写;

序列化和反序列化:

序列化:必须实现Serialiable接口

序列化:将内存中的对象转换为流

反序列化:将流转换为内存中的对象

目的:持久化对象,将对象在网络上进行传输

类必须实现Serializable接口;

不需要序列化的字段前加transient

例如:

Xuliehua n=new Xuliehua(“张三”);

//序列化

ObjectOutputStream cv=new ObjectOutputStream(new FileOutputStream(“e:abc.txt”));

cv.writeObject(n);

cv.close();

//反序列化

ObjectInputStream sb=new ObjectInputStream(new FileInputStream(“e:abc.txt”));

Xuliehua b=(Xuliehua) sb.readObject();

System.out.println(b);

sb.close();

继续阅读