2015-10-30 165 views
1

我正在創建一個應用程序,它需要爲每個用戶(以JSON格式)編寫一個文件。Java FileWriter不寫入文件

應用程序成功創建文件,但它是空的。在代碼中,我添加了一個更精細的輸出以查看轉換後的JSON字符串的樣子,並且我注意到它是完整的(它包含所有內容,所以轉換是可以的)。但字符串不存在於文件中。

//create a new FileWriter C:/.../42.guser 
     FileWriter writer = null; 

     //for every User 
     for(int i=0; i<users.size(); i++) { 

      try { 
       File f = new File(Users.usersDir.getPath()+"/"+i+".guser"); 

       //Create new file 
       f.createNewFile(); 

       writer = new FileWriter(f); 

       //convert to json and write to file. Here we get the object with KEY = keys[i]. 
       String stringedUsr = gson.toJson(users.get(keys[i])); 

       logger.finer("Converted user: \""+stringedUsr+"\""); //Output seems ok 

       //Write (NOT WORKING) 
       writer.write(stringedUsr); 

       logger.fine("Wrote updated user \""+keys[i]+"\" to file "+f.getCanonicalPath()); 

      } catch (IOException e) { 
       FAILS++; 
       e.printStackTrace(); 
      } 

     } 
     //End of for 

我在做什麼錯?

注:我給應用程序所有必要的權限。沒有AccessControlExceptions

+3

嘗試'flush()'方法,同時關閉作者 – sidgate

+3

剛剛關閉它應該沒問題。這將沖洗。 –

+1

@AxelMontini不,因爲它不會調用刷新或關閉;-) –

回答

5

首先想想關閉你的作家。 什麼時候關門,應該是flush()你的數據第一次(如文檔中提到的012d)

你也可以手動地flush()

相關問題