然后再从这个文件中把这些对象读到list里面
解决方案 »
- android 线程池能实现每个线程执行完之后就在主线程显示吗
- 页面每10秒读取一次Action,多个用户执行这样的操作就报NullPointerException
- 变量的生命周期
- 请问一个截取字段的问题
- 请问hashCode()具体有什么用?
- 我想设计个查询数据库的缓冲类,碰上了一些问题,大家来探讨一下吧
- 请问获取某日是周几的方法?
- 急::请指点!!(Thank You!!)
- 谁能告诉我用tomcat4.0.6作服务器运行jsp,jsp文件应该放在什么地方?
- 对象初始化的时候属性方法的加载顺序的问题,希望大神进来看一下
- 第21题 若需要定义一个类域或类方法,应使用哪种修饰符?
- 求助netbeans的安装
而ArrayList等类是实现了Serializable接口的,可以保存到磁盘中。
所以,你在定义List的时候应该像下面这样:
ArrayList<Object> list = new ArrayList<Object>;
而不是这样:
List<Object> list = new ArrayList<Object>;保存成文件以后,读出来就是原来的样子了。
有个帖子你可以参考:
http://topic.csdn.net/u/20090804/16/7d2462d2-292b-43c5-820d-7addcf4380fd.html
读取对应的用ObjectInputStream中的readObject(),并把读到的Object用add方法加入list里
import java.io.*;
import java.util.*;
public class TestSerializable2 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Object> test = new ArrayList<Object>();
test.add(new TEST("a"));
test.add(new TEST("b"));
test.add(new TEST("c"));
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:/test/testSer5.ser"));
oos.writeObject(test);
oos.flush();
oos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}class TEST implements Serializable{
String name;
TEST(String name){
this.name = name;
}
}
import java.util.*;
public class TestSerializable2 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Object> test = new ArrayList<Object>();
test.add(new TEST("a"));
test.add(new TEST("b"));
test.add(new TEST("c"));
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:/test/testSer5.ser"));
oos.writeObject(test);
oos.flush();
oos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("c:/test/testSer5.ser"));
List test1 = (List)ois.readObject();
for(Object obj : test1){
TEST t = (TEST)obj;
System.out.println(t.name);
}
}catch(Exception e){
e.printStackTrace();
}
}}class TEST implements Serializable{
String name;
TEST(String name){
this.name = name;
}
}
import java.io.*;
import java.util.*;
public class TestSerializable2 { /**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub List<Object> test = new ArrayList<Object>();
test.add(new TEST("a"));
test.add(new TEST("b"));
test.add(new TEST("c")); try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("c:/test/testSer5.ser"));
oos.writeObject(test);
oos.flush();
oos.close();
ObjectInputStream iis = new ObjectInputStream(new FileInputStream("c:/test/testSer5.ser"));
List<Object> testT = (List<Object>)iis.readObject();
for(Object obj : testT)
{
System.out.println(((TEST)obj).getName());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}class TEST implements Serializable{ String name;
TEST(String name){
this.name = name;
} public String getName()
{
return this.name;
}}
套用楼上仁兄的,这样可能更能说明问题。