JavaSE 对象流

 006zipb5zy7aauKw3aN49&690

ObjectOutputStream和ObjectInputStream分别代表对象字节输出流和对象字节输入流,其功能分别是:

ObjectOutputStream

提供了writeObject(Serializable)方法,将对象转化成字节流再输出到目标字节流中去。这一个过程称为序列化。需要序列化的类必须实现Serializable接口。

ObjectInputStream

提供了Object readObject()方法,将字节输入流转化成对象。这一个过程称为反序列化

   

示例1代码:

  class Student implements Serializable{

private String name;

private int age;

 

public Student(String name, int age) {

super();

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Student [name=" + name + ", age=" + age + "]";

}

}

public class TestObjectOutputStream {

public static void main(String[] args) {

ObjectOutputStream oos=null;

FileOutputStream fos=null;

try {

fos = new FileOutputStream("obj.dat");

oos=new ObjectOutputStream(fos);

Student s=new Student("Jack",20);

oos.writeObject(s);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally{

try {

if(oos!=null)oos.close();

if(fos!=null)fos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

 

 

 

示例2代码:

 

public class TestObjectInputStream {

public static void main(String[] args) {

ObjectInputStream ois=null;

FileInputStream fis=null;

try {

fis = new FileInputStream("obj.dat");

ois=new ObjectInputStream(fis);

Student s=(Student) ois.readObject();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}finally{

try {

if(ois!=null)ois.close();

if(fis!=null)fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

 

}

 

转载于:https://my.oschina.net/u/2971691/blog/875692

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值