字节过滤流之对象流
ObjectOutputStream/ObjectInputStream
功能:
1.增强的缓冲区功能
2.增强了读写8种基本数据类型和字符串功能
3.增强了读写对象的功能
3.1readObject()从流中读取一个对象
3.2(object obj)向流中写入一个对象
4.使用流传输的对象的过程称为序列化、反序列化
大家平时打开一个文档时可能会出现这样的问题:
很多也不知道是啥:
下面用一段代码来看一下:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
public class TestQuestion13 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("C:\\Users\\Lenovo\\Desktop\\test.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
while(true){
try{
Object o = ois.readObject();
System.out.println(o);
}catch(Exception e){
break;
}
}
}
}
结果:
Person [name=光芒, age=21, sex=男, professional=无业游民]
Person [name=公民, age=21, sex=男, professional=有志青年]
哈哈,其实上面那个是自己用对象流的方式传入传输的一些信息,想要真正解决的话还是去搜索一下,或者请教专业人员
输入代码:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
通过对象流的方式,将信息存入到文本文档中
*/
public class TestOutputStream {
public static void main(String[] args) throws IOException {
FileOutputStream f = new FileOutputStream("C:\\Users\\Lenovo\\Desktop\\test.txt");
ObjectOutputStream oot = new ObjectOutputStream(f);
Person p1 = new Person("光芒" , 21 , "男" , new Professional("无业游民"));
Person p2 = new Person("公民" , 21 , "男" , new Professional("有志青年"));
oot.writeObject(p1);
oot.writeObject(p2);
oot.flush();
oot.close();
}
}
class Person implements Serializable{
String name;
Integer age;
String sex;
Professional professional;
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", sex=" + sex + ", professional=" + professional + "]";
}
//人的信息实现Serializable接口
public Person(String name, Integer age, String sex, Professional professional) {
super();
this.name = name;
this.age = age;
this.sex = sex;
this.professional = professional;
}
}
//职业实现Serializable接口
class Professional implements Serializable{
String professional;
public Professional(String professional) {
super();
this.professional = professional;
}
public String toString() {
return professional;
}
}