javaIO中的对象流ObjectInputStream与ObjectOutputStream
ObjectInputStream与ObjectOutputStream可以将对象写在硬盘或者从硬盘中读取出来,当然也可以在网络中传输的时候。但是操作的对象必须实现序列化。
什么是对象的序列化?对象序列化的目标就是将对象保存在磁盘上,或者允许在网络中传输对象。
api中描述如下

api中的描述如下

一个实现了序列化的对象
package cn.bean.demo.io.object;
import java.io.Serializable;
//如果这个对象拥有一个实例属性【并且这个实例的对象是自定义对象,他必须也要实现序列化,否则person不会成功写入到磁盘中,可以自行验证】
public class Person implements Serializable{
/**
* 对象序列化版本号
*/
private static final long serialVersionUID = 8761043201815925119L;
private String name;
private String sex;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Person(String name, String sex, String age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
}
读写对象的方法
package cn.bean.demo.io.object;
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;
public class ObjectOutAndInputStreamTest {
public static void main(String[] args) {
//testObjectOutputStream();
testObjectInputStream();
}
/**
* 将对象写入在磁盘文件中
*/
static void testObjectOutputStream() {
//
try (OutputStream out = new FileOutputStream("object.txt");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(out);) {
// 写入的对象必须实现序列化
Person person = new Person("nigulas", "男", "20");
objectOutputStream.writeObject(person);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 读取磁盘文件中的对象信息
*/
static void testObjectInputStream() {
try (InputStream in = new FileInputStream("object.txt");
ObjectInputStream objectInputStream = new ObjectInputStream(in);)
{
Person person= (Person) objectInputStream.readObject();
System.out.println(person);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
浙公网安备 33010602011771号