import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;public class ArrayListTest { public static ArrayList<String> al = new ArrayList<String>(); public static void main(String[] args) {
File f = new File("D:\\test.txt");
FileInputStream fis = null;
FileOutputStream fos = null;
ObjectInputStream ois = null;
ObjectOutputStream oos = null;
InfoTest info = null;
try {
fis = new FileInputStream(f);
fos = new FileOutputStream(f);
oos = new ObjectOutputStream(fos);
ois = new ObjectInputStream(fis);
al.add("AAAAAA");
oos.writeObject(al);
String s = (String) ((ArrayList<String>) ois.readObject()).get(0);
System.out.println(s);//可以正确的得到AAAAAA al.add("BBBBBB");
oos.writeObject(al);
System.out.println(al.size());//打印2
ArrayList<String> all = (ArrayList<String>) ois.readObject();
System.out.println(all.size());//为什么是1呢,序列化的时候,al里面是有2个元素啊!
System.out.println(all.get(0));
//System.out.println(all.get(1)); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
oos.close();
fos.close();
ois.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;public class ArrayListTest { public static ArrayList<String> al = new ArrayList<String>(); public static void main(String[] args) {
File f = new File("D:\\test.txt");
FileInputStream fis = null;
FileOutputStream fos = null;
ObjectInputStream ois = null;
ObjectOutputStream oos = null;
InfoTest info = null;
try {
fis = new FileInputStream(f);
fos = new FileOutputStream(f);
oos = new ObjectOutputStream(fos);
ois = new ObjectInputStream(fis);
al.add("AAAAAA");
oos.writeObject(al);
String s = (String) ((ArrayList<String>) ois.readObject()).get(0);
System.out.println(s);//可以正确的得到AAAAAA al.add("BBBBBB");
oos.writeObject(al);
System.out.println(al.size());//打印2
ArrayList<String> all = (ArrayList<String>) ois.readObject();
System.out.println(all.size());//为什么是1呢,序列化的时候,al里面是有2个元素啊!
System.out.println(all.get(0));
//System.out.println(all.get(1)); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
oos.close();
fos.close();
ois.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
}
改下代码,就能发系列化出AAAA和BBBBpackage test;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;public class ArrayListTest { public static ArrayList<String> al = new ArrayList<String>(); public static void main(String[] args) {
File f = new File("D:\\test.txt");
FileInputStream fis = null;
FileOutputStream fos = null;
ObjectInputStream ois = null;
ObjectOutputStream oos = null;
InfoTest info = null;
try {
fis = new FileInputStream(f);
fos = new FileOutputStream(f);
oos = new ObjectOutputStream(fos);
ois = new ObjectInputStream(fis);
al.add("AAAAAA");
// 注释部分
//oos.writeObject(al);
//String s = (String) ((ArrayList<String>) ois.readObject()).get(0);
//System.out.println(s);// 可以正确的得到AAAAAA al.add("BBBBBB");
oos.writeObject(al);
System.out.println(al.size());// 打印2
ArrayList<String> all = (ArrayList<String>) ois.readObject();
System.out.println(all.size());// 为什么是1呢,序列化的时候,al里面是有2个元素啊!
System.out.println(all.get(0));
// 打开注释
System.out.println(all.get(1)); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
oos.close();
fos.close();
ois.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
}广告我的一篇文章:Java Serializable系列化与反系列化