脚本宝典收集整理的这篇文章主要介绍了Java io流案例,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1.定义一个存储Person对象的ArrayList
2.往ArrayList集合中存储Person对象
3.创建一个序列化流ObjectOutputStream
4.使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化
5.创建一个反序列化ObjectInputStream对象
6.使用ObjectInputStream对象中的方法readObject方法读取文件中保存的集合
7.把Object类型的集合转换为ArrayList类型
8.遍历ArrayList集合
9.释放资源
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
private static List<Person> pl = new ArrayList<Person>();
private static File file = new File("E:\Persons\Person.txt");
private static ByteArrayOutputStream baos = new ByteArrayOutputStream();
private static ByteArrayInputStream bais;
/**
* 序列化
* @throws Exception
*/
public static void xuLieHua() throws Exception {
// FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(baos);
for (Person p : pl) {
oos.writeObject(p);
}
oos.close();
// fos.close();
}
/**
* 反序列化
* @throws Exception
*/
public static void anti_XuLieHua() throws Exception {
// FileInputStream fis = new FileInputStream(file);
bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
while (bais.available()>0) {
Person p= (Person) ois.readObject();
pl.add(p);
}
ois.close();
// fis.close();
}
/**
* 程序入口
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
if (!file.exists()) {
file.createNewFile();
}
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
String name = sc.next();
int age = sc.nextInt();
pl.add(new Person(name, age));
}
sc.close();
xuLieHua();
pl.clear();
anti_XuLieHua();
for (Person p : pl) {
System.out.println(p);
}
}
}
import java.io.Serializable;
public class Person implements Serializable{
private String name;
private int age;
public Person(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 "Person [name=" + name + ", age=" + age + "]";
}
}
以上是脚本宝典为你收集整理的Java io流案例全部内容,希望文章能够帮你解决Java io流案例所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。