オブジェクトをシリアル化してファイルから逆シリアル化しようとしています。現時点では、シリアライズは動作します(または実行時に動作することが報告されます)。何らかの理由で逆シリアル化しようとすると、StreamCorruptedExceptionが報告されます。 これは、報告されたスタックトレースです:ウェブ上で見ていると例を見つけることを試みた後ファイルからオブジェクトを読み取るJava
java.io.StreamCorruptedException: invalid stream header: 0A0A5072
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:806)
at java.io.ObjectInputStream.(ObjectInputStream.java:299)
at Assignment8.main(Assignment8.java:201)
、これは私が私が順序でのArrayListを使用しています
System.out.print("Please enter a file name to read:\n");
filename = stdin.readLine().trim();
try{
FileInputStream fileIn = new FileInputStream(filename);
ObjectInputStream in1 = new ObjectInputStream(fileIn);//line 201
while(true){
try{
Project proj1 = (Project) in1.readObject();
ArrayList<Project> pla = new ArrayList<Project>();
pla.add(proj1);
for(Project proj:pla){
String nam = proj.getName();
String loc = proj.getLocation();
int num = proj.getNumber();
double bud = proj.getFund();
manage1.addProject(nam, loc, num, bud);
}
}catch(EOFException e){
System.out.println(filename+ " was read");
in1.close();
break;
}catch(ClassNotFoundException e){
}
}
}catch(FileNotFoundException e){
System.out.println(filename+" was not found");
}catch(IOException e){
e.printStackTrace();
System.out.println("io exception deserislaing");
}
break;
を行う必要があるだろうと信じていたものでしたProjectManagementのメイン配列に追加する前にファイルから読み込まれたオブジェクトを保持することができます。私が読んでいるファイルは.datファイルです。これはおそらく私のエラーを引き起こす可能性がありますか?ありがとう:)
ファイルをどのように作成しましたか? – bradimus
私の教授が提出サイトで作成したファイルです。 –