java对象流
import java.io.Serializable;
public class Person implements Serializable{
/**
* 实现序列化接口
* 指定序列号版本id
*/
private static final long serialVersionUID = 1L;
int age;
String name;
}
public class Three {
/**
* 对象流
*/
public static void main(String[] args) {
Person p = new Person();
p.age = 20;
p.name = "张三";
String filePath = "d:\\object";
// 往文件中写入对象
writeObject(p, filePath);
// 从文件中读取对象
readObject(filePath);
}
private static void readObject(String filePath) {
ObjectInputStream ois = null;
try {
FileInputStream fis = new FileInputStream(filePath);
ois = new ObjectInputStream(fis);
// 读取对象时要按照写入的顺序
Person readObject = (Person) ois.readObject();
String name = readObject.name;
System.out.println("读取到对象叫" + name);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if(ois!=null){
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private static void writeObject(Person p, String filePath) {
ObjectOutputStream oos = null;
try {
FileOutputStream fos = new FileOutputStream(filePath);
oos = new ObjectOutputStream(fos);
oos.writeObject(p);
oos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (oos != null) {
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}