2014-09-02 135 views
0

我想將int寫入文本文件。 我寫了這個代碼無法將文本寫入文件

public static void WriteInt(int i,String fileName){ 
    File directory = new File("C:\\this\\"); 
    if (!directory.exists()) { 
     directory.mkdirs(); 
    } 
    File file = new File("C\\"+fileName); 
    FileOutputStream fOut = null; 

    try { 
     //Create the stream pointing at the file location 
     fOut = new FileOutputStream(new File(directory, fileName)); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    OutputStreamWriter osw = new OutputStreamWriter(fOut); 
    try { 

     osw.write(i); 


     osw.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

但在輸出文件我沒有整型,只是一個符號。 任何想法做到這一點?

+3

朋友,什麼是C \\? – Leo 2014-09-02 16:51:02

+0

@Leo - 很可能是*錯別字* – TheLostMind 2014-09-02 16:52:07

+0

更改爲C:\\但它仍然不起作用。 – Roki20121 2014-09-02 16:54:31

回答

5

您應該使用PrintWriter.print(INT)

Writer.write()輸出一個字符,這就是它是。不要被int參數類型弄糊塗。把你的osw包裝在PrintWriter中,別忘了關閉它。

0
osw.write(i); 

這行的字符寫入到其Unicode值是i

您應該使用PrintWriter寫你的整數值的文件。

0

OutputStreamWriter是打印字符的流。

嘗試使用PrintWriter這樣的:

try(FileWriter fw = new FileWriter(file); 
    BufferedWriter bw = new BufferedWriter(fw); 
    PrintWriter pw = new PrintWriter(bw)) { 
    pw.print(i); 
} 
0

我猜你的問題是,你希望從字面上找到在你的文件人類可讀格式的數字,但OutputStreamWriter的方法,你」重新使用(其收到int)期望收到char表示。看看Ascii table的參考int代表哪個char

如果你真的想你寫與字符數,可以考慮使用,而不是一個OutputStreamWriter一個PrintWriter的。你也可以改變你的INT爲String(Integer.toString(I)),並且仍然使用OutputStreamWriter

+0

是啊!這是我需要的。謝謝。 – Roki20121 2014-09-02 17:10:49