2015-03-13 76 views
-2

我一直在試圖顯示序列化文件中存在的所有數據,但我不知道該怎麼做。我只能顯示最後的數據。如何在最後顯示所有數據?閱讀並顯示序列化文件的所有數據

這是我一直在使用方法:

public void lecturaRegistro() throws ClassNotFoundException { 

    try { 
     while (true) { 
      FileInputStream fis = new FileInputStream(f); 
      ObjectInputStream ois = new ObjectInputStream(fis); 

      Usuario usu = (Usuario) ois.readObject(); 
      System.out.println("Login: " + usu.getLogin()); 
      System.out.println("Clave: " + usu.getClave()); 
      System.out.println("Tipo: " + usu.getTipoU()); 

      ois.close(); 
      break; 
     } 

    } catch (FileNotFoundException e) { 

    } catch (IOException e) { 

    } 

} 

我在做什麼錯?

在此先感謝。

+0

嘿Usuario只包含單entity.fir您可以選擇存儲序列化文件中的一個集合,然後在反序列化時,必須遍歷Collection。 – 2015-03-13 06:05:14

回答

0

改變這樣

FileInputStream fis = new FileInputStream(f); 
     ObjectInputStream ois = new ObjectInputStream(fis); 

     while (true) { 

      Usuario usu = (Usuario) ois.readObject(); 
      if (usu == null) { 
       break; 
      } else { 
       System.out.println("Login: " + usu.getLogin()); 
       System.out.println("Clave: " + usu.getClave()); 
       System.out.println("Tipo: " + usu.getTipoU()); 
      } 

     } 
     ois.close(); 

你讀了一個對象的代碼。你需要閱讀整個文件中顯示的所有對象