代码:
package src;
import java.io.*;public class TestObjectStreamAppend {
public static void main(String[] args) throws Exception{
Teacher t=new Teacher("hlonger");
Student s1=new Student("zhijunzhang",30,99.0,t);
Student s2=new Student("keep",30,98.999,t);
FileOutputStream fos=new FileOutputStream("student.dat");
//存在覆盖,不存在建立.
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(s1);
oos.close();
fos=new FileOutputStream("student.dat",true);
//true代表append oos=new ObjectOutputStream(fos);
oos.writeObject(s2);
oos.close();
FileInputStream fis=new FileInputStream("student.dat");
ObjectInputStream ois=new ObjectInputStream(fis);
Object o;
try{
while(true){
o=ois.readObject();
System.out.println(o);
}
}catch(EOFException ee){
}
ois.close();
}
}运行结果:
Student's Name:zhijunzhang Age:30 Mark:99.0 Teacher:hlonger
Exception in thread "main" java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at src.TestObjectStreamAppend.main(TestObjectStreamAppend.java:28)我的目的是在存储一个对象后(关闭流),加入一个对象(append)
可是输入怎么少一个,还有异常跑出,请问这问题 出在那里?
package src;
import java.io.*;public class TestObjectStreamAppend {
public static void main(String[] args) throws Exception{
Teacher t=new Teacher("hlonger");
Student s1=new Student("zhijunzhang",30,99.0,t);
Student s2=new Student("keep",30,98.999,t);
FileOutputStream fos=new FileOutputStream("student.dat");
//存在覆盖,不存在建立.
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(s1);
oos.close();
fos=new FileOutputStream("student.dat",true);
//true代表append oos=new ObjectOutputStream(fos);
oos.writeObject(s2);
oos.close();
FileInputStream fis=new FileInputStream("student.dat");
ObjectInputStream ois=new ObjectInputStream(fis);
Object o;
try{
while(true){
o=ois.readObject();
System.out.println(o);
}
}catch(EOFException ee){
}
ois.close();
}
}运行结果:
Student's Name:zhijunzhang Age:30 Mark:99.0 Teacher:hlonger
Exception in thread "main" java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at src.TestObjectStreamAppend.main(TestObjectStreamAppend.java:28)我的目的是在存储一个对象后(关闭流),加入一个对象(append)
可是输入怎么少一个,还有异常跑出,请问这问题 出在那里?
由于水平有限,只能理解成一个是海量存储,一个是差量存储.
我想知道append后,如何正确?