2013-08-02 73 views
0

我的緩衝寫入器正在我的txt文件中寫入一些隨機垃圾。我使用int nodes = Integer.valueOf(NODES_TEXT_FIELD.getText());來存儲應該只接受ints的一個TextField的值。緩衝的寫入器在文本文件上寫入內存垃圾

這是我的作家:

private static void writeOnFile(BufferedWriter writer, int nodes){ 

      try { 
       System.out.println(nodes); 
       System.out.println("Last check before write"); 
       writer.write(nodes); 
       System.out.println(nodes); 
     } catch (IOException e) { 

      JOptionPane.showMessageDialog(null, "Failed to write data on file"); 
       e.printStackTrace();    
     }  
     } 

我的輸出:

2 
Last check before write 
2 

,並在文本文件中,我發現: '?' (取決於什麼號碼,你輸入

任何人有什麼可能是錯的任何想法,這改變到另一個存儲垃圾?我堅持在這裏5小時,直至現在..

回答

1

因爲write()寫一個字。

寫入單個字符被寫入包含在給定整數值的16個低位比特的字符; 16高階位被忽略

參數:。

Ç - int,指定一個字符寫入

您可以使用Writer#write(String)

writer.write(String.valueOf(nodes)); 
+0

謝謝你,那是輝煌而快速的。 –

1

試試這個:

Writer wr = new FileWriter("thefileToWriteTo.txt"); 
wr.write(String.valueOf(nodes)); 
wr.close(); 

可以寫作總是提取到如果一個循環是你正在做什麼與你的節點或某種逃避,如果你通過將它寫入文件來解釋你實際嘗試實現的是什麼,它會更有幫助,就像w e可能會就此提出建議。