操作系统D盘中有一个文件为:userbase.txt,内容为
用户ID 用户名 年龄
20120001杰易1号 1
20120002杰易2号 2
20120003杰易3号 3
20120004杰易4号 4
20120005杰易5号 5
请把userbase.txt输到程序中的一个集合中,然后输出集合中的信息。请用面向对象编写。程序结果例如:
总共有5条记录,分别为:
用户ID:20120001 用户名:杰易1号 年龄:1
用户ID:20120002 用户名:杰易2号 年龄:2
用户ID:20120003 用户名:杰易3号 年龄:3
用户ID:20120004 用户名:杰易4号 年龄:4
用户ID:20120005 用户名:杰易5号 年龄:5
对象流:就是将对象的内容进行流化,可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间,其作用是为了解决在对对象流进行读写操作时所引发的问题。
实例:首先执行方法serializable()将集合中的数据序列化,并保存在E:/userbase.txt,然后调用方法turnSerializable()将保存在E:/userbase.txt的集合对象反序列化回来
Serializable.java:
package zbiti.test;
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;
public class Serializable {
private static List<String> list = new ArrayList<String>();
private static File file = new File("E:/userbase.txt");
public static void main(String[] args) {
for(int i=1; i<=5; i++){
list.add("用户ID:2012000"+i+" 用户名:杰易"+i+"号"+" 年龄:"+i);
}
serializable();
turnSerializable();
}
public static void serializable(){
try {
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(list);
oos.flush();
fos.close();
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
public static void turnSerializable(){
try {
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
list = (List<String>) ois.readObject();
System.out.println("总共有"+list.size()+"条记录,分别为:");
for(String s : list){
System.out.println(s);
}
fis.close();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}