2016-03-18 22 views
0

オブジェクトをシリアル化してファイルから逆シリアル化しようとしています。現時点では、シリアライズは動作します(または実行時に動作することが報告されます)。何らかの理由で逆シリアル化しようとすると、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ファイルです。これはおそらく私のエラーを引き起こす可能性がありますか?ありがとう:)

+0

ファイルをどのように作成しましたか? – bradimus

+0

私の教授が提出サイトで作成したファイルです。 –

答えて

0

ObjectInputStream.readObject()を使用して、ファイルからシリアル化オブジェクトを取得しようとしています。もともとオブジェクトをファイルに書き込むのにObjectOutputStrem.writeObject()を使用しましたか?

あなたが読み書きする方法がお互いに逆でない場合は、StreamCorruptedExceptionが一般的です。

+0

ありがとう!それは私の問題だったFileWriterを使用して書いていた。 –

関連する問題