Java io流案例

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。
标签: