21天-01-IO流(对象的序列化)
l 操作对象
Ÿ ObjectInpuntStream与ObjectOutputStream,必须得成对使用。
Ÿ 本操作的对象需要实现Serializable(标记接口)。
功能演示:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Person implements Serializable{
public static final long serialVersionUID = 42L;
/*不固定UID号,当类的成员变量改变后,再次操作序列化流对象时会报错*/
private Stringname;
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){
returnname+":"+age;
}
}
public class ObjectStreamDemo {
public static void main(String[] args)throws Exception {
//writeObj();
//readObj();
}
public static void readObj()throws Exception{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.txt"));
Person p = (Person)ois.readObject();
System.out.println(p);
ois.close();
}
public static void writeObj() throws Exception{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.txt"));
oos.writeObject(new Person("lisi0",399));
oos.close();
}
}
21天-02-IO流(管道流)
l 管道流
Ÿ PipedInputStream和PipedOutputStream。
Ÿ 输入输出可以直接进行连接,通过结合线程使用。
² 注意:不建议对这两个对象尝试使用单个线程,因为这样可能死锁线程。