2013-05-09 211 views
-1

我想將文件加載到我的ArrayList中,如果文件不存在,程序會創建一個文件。我得到IOException:空,因爲在開始文件是空的。如何避免該錯誤並檢查文件是否爲空?這裏是我的代碼:Java檢查文件是否爲空:IOException:null

 File f = new File(fileName); 

    try { 
     if(!f.exists()){ 
      f.createNewFile(); 
     } 

     inputStream = new ObjectInputStream(new FileInputStream(f)); 
     scores = (ArrayList<Score>) inputStream.readObject(); 
    } catch (IOException e) { 
     System.out.println("IO Error: " + e.getMessage()); 
    } finally { 
     ... 
    } 
+0

什麼是您的文件名 – 2013-05-09 11:35:22

回答

6

使用File.length()獲取該文件的字節大小數:

的長度,以字節爲單位,此抽象路徑名錶示的文件,或者0L如果文件不存在。某些操作系統可能會返回0L,表示與系統相關的實體(如設備或管道)的路徑名。

+0

TNX,這就是我一直在尋找 – NGix 2013-05-09 11:44:07

1

在我看來,你的程序需要調整的次要比特,那麼就不會嘗試加載空文件

File f = new File(fileName); 

    try { 
     if(f.length() == 0){ 
      f.createNewFile(); 
     } else { 
      inputStream = new ObjectInputStream(new FileInputStream(f)); 
      scores = (ArrayList<Score>) inputStream.readObject(); 
     } 
    } catch (IOException e) { 
     System.out.println("IO Error: " + e.getMessage()); 
    } finally { 
     ...