package com.javabase.p1;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
public class Demoobjout {
//Java语言只能将实现了Serializable接口的类的对象保存到文件中
public static void main(String[] args) {
String str = "我想去海南吃龙虾";
String path = "c:/100.dat";
String sname = "王小美";
int age = 30;
Person p = new Person(sname,age,str);
//写入并保存对象
sWriteObj(p,path);
System.out.println("对象已写入硬盘");
Person p101 = null;
//从磁盘读取对象
p101 = sReadObj(path);
if(p101 == null) {
System.out.println("读取对象错误");
}else {
System.out.println(p101.getsName() +" "+ p101.getIage() + " " +p101.getStr());
//比较两个对象的地址是否一样
System.out.println(p == p101);
}
}
/**
* 写入对象到硬盘
* @param pSon 需要保存的对象
* @param path 路径 全名
*/
public static void sWriteObj(Person pSon,String path) {
OutputStream ops = null;
ObjectOutputStream oos = null;
try {
ops = new FileOutputStream(path);
oos = new ObjectOutputStream(ops);
oos.writeObject(pSon);
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
try {
oos.close();
ops.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 读取对象
* @param path 全路径
* @return 返回 Person对象
*/
public static Person sReadObj(String path) {
Person pSon = null;
try(
InputStream is = new FileInputStream(path);
ObjectInputStream ois = new ObjectInputStream(is);
) {
pSon = (Person)ois.readObject();
} catch (Exception e) {
//出错返回null
return null;
}
return pSon;
}
}
//Java语言只能将实现了Serializable接口的类的对象保存到文件中
//要保存的对象类必须实现 Serializable 接口
class Person implements Serializable{
private static final long serialVersionUID = -3836658895819502595L;
private String str = null;
private String sName = null;
private int iage = 0;
public Person() {}
public Person(String name,int age,String s) {
setsName(name);
setIage(age);
setStr(s);
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public String getsName() {
return sName;
}
public void setsName(String sName) {
this.sName = sName;
}
public int getIage() {
return iage;
}
public void setIage(int iage) {
this.iage = iage;
}
}
java中ObjectOutputStream保存对象
猜你喜欢
转载自blog.csdn.net/qq_43314793/article/details/90114785
今日推荐
周排行