將對象序列化寫到文件中然后再反序列化讀出來` try {
oos = new (fos);
ois = new (fis);
oos.(new (“哈奇”,22,1000.0));
oos.(new (“”,23,28000));
oos.flush();
} catch ( e) {
e.();
}
w;
try {
while(){
w= (Worker) ois.readObject();
System.out.println(w);

}
} catch(EOFException exception){
exception.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
ois.close();
oos.close();

} catch (IOException e) {
e.printStackTrace();
}
}
原來while中的判斷條件寫的是( w= () ois.())!=null但是無果啊讀取流時(shí)發(fā)生錯(cuò)誤pdf,依然報(bào)如題的錯(cuò),后來百度到的方法都是如下:
/*
* 若文件中有若干個(gè)Object對象,你用ObjectInputStream中的readObject()去讀,何時(shí)判讀到結(jié)尾?
* 方法之一:(常用的方法)將若干個(gè)對象(數(shù)量不定)都裝入一個(gè)容器中(如:ArrayList之類),
* 然后將容器這一個(gè)對象寫入就行了。讀取時(shí),只要讀取一個(gè)對象(即容器對象)就行了。
*
* 方法之二:(若不想用容器),則由于數(shù)量不定,正是用EOFException來判斷結(jié)束。

* 代碼結(jié)構(gòu)如下:(無論是readInt()讀int,還是readObject()讀對象)
* try{
* while(true) {
* Object o=ois.radObject();
* 處理已讀出的對象o;
* }
* }
* catch(EOFException e){
* //已從流中讀完。
* }
* finallly {
* 流的關(guān)閉。 }

*/
然鵝讀取流時(shí)發(fā)生錯(cuò)誤pdf,依然報(bào)錯(cuò)[無奈臉],后來解決辦法是:
“`
try {
oos = new (fos);
ois = new (fis);
oos.(new (“哈奇”,22,1000.0));
oos.(new (“”,23,28000));
oos.(null);//以此來判斷是否讀到結(jié)尾
oos.flush();
} catch ( e) {
e.();
}
w;
try {
while((w= (Worker) ois.readObject())!=null){
System.out.println(w);
}
} catch(EOFException exception){
exception.printStackTrace();
}
“`
如有疏漏多多指教哈