2016-03-18 7 views
0

Bir nesneyi serileştirmeye çalışıyorum ve daha sonra dosyadan seri hale getirmeye çalışıyorum. Şu an itibariyle serileştirme çalışmaları (veya çalıştırıldığında çalıştığı rapor edilmektedir). Herhangi bir nedenden ötürü, seri hale getirmeye çalıştığımda, bir StreamCorruptedException bildiriyor. Bu rapor Yığın izleme: web'de arayan ve örnekler bulmaya çalışıyorum sonraDosyadan nesneleri okuma 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) 

, bu ben sırayla ArrayList kullanıyorum

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; 

yapmak gerekir olacağını düşündüğümüz oldu Ana ProjectManagement dizime eklemeden önce dosyadan okunan nesneleri tutmak için. Benim okuduğum dosya bir .dat dosyasıdır. Bu benim hataya neden olabilir mi? Teşekkür :)

+0

nasıl dosya yarattı? – bradimus

+0

Bu benim profesörün gönderim sitemizde oluşturduğu bir dosyadır. –

cevap

0

Sen dosyadan seri olarak nesneyi getirmek için ObjectInputStream.readObject() kullanmaya çalışıyorsunuz. Nesnenizi orijinal olarak dosyaya yazmak için ObjectOutputStrem.writeObject() mu kullanıyorsunuz?

yöntemler okuma ve yazma birbirlerinin tersidir değildir etmek kullandığınızda bu StreamCorruptedException görmek yaygındır.

+0

Teşekkürler! Bu benim sorunumdu, FileWriter kullanarak yazıyordu. –