然后再从这个文件中把这些对象读到list里面
解决方案 »
- private static String simpleName(Class<?> clazz)实参应该是什么
- 怎样在jinternalframe里面内嵌一个浏览器?
- 如何让JCombobox自动显示下拉框??
- 求助:[Microsoft][ODBC Microsoft Access Driver] 查询值的数目与目标字段中的数目不同。
- JSP在tomcat上的报错信息是怎么回事?WIN2003SVR环境下!!!
- swing 布局问题,有兴趣请进,望指教
- tomcat
- Java Web Start的问题
- ftpclient.put()方法谁用过?
- 这个能实现吗
- 第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;
}}
套用楼上仁兄的,这样可能更能说明问题。