Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();
輸出文件包含:
{
寫INT到文本文件寫入
問題出在哪裏?如何使用Writer
將int
寫入文本文件?
Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();
輸出文件包含:
{
寫INT到文本文件寫入
問題出在哪裏?如何使用Writer
將int
寫入文本文件?
你必須寫字符串...
你可以試試。
wr.write("123");
OR
wr.write(new Integer(123).toString());
OR
wr.write(String.valueOf(123));
123 = 0x7b = ASCII碼{
,所以你寫的字符文件。 使用toString()
方法將該值轉換爲字符串並輸出。
問題是Writer.write
用於發送單個字符到輸出。目前尚不清楚爲什麼它int
,而不是char
,無可否認 - 它將使意義,如果你可以使用它來發送非BMP字符,但documentation狀態:
寫入單個字符。要寫入的字符包含在給定整數值的16個低位中; 16位高位被忽略。
您需要先將整數轉換爲字符串,例如
int v = 123; // I'm assuming this is dynamic in reality
wr.write(String.valueOf(v));
的Javadoc是你的朋友:
方便類寫入字符文件。
}
是ASCII碼值的字符123
如果你想的123
文本表示寫入該文件,你會想做的事:
wr.write(Integer.toString(123));
這是你在嘗試什麼。看到這個。
http://download.oracle.com/javase/1.4.2/docs/api/java/io/Writer.html#write(int)
這是在Javadoc IM reffering方法名,櫃面如果鏈接不會自動帶你走。
public void write(int c)
throws IOException
所以,對於123等效的ASCII字符{
感謝
然而一個方法:
wr.write(""+123); //immediately convert int to its String representation
或
wr.write(""+i);
但我不知道,它是如何影響的性能與其他方法相比較,但寫起來要簡單一些。 :)
PS:對不起,我可能是壞的英語
也有寫整數使用提交一個非常簡單的方法FileWriter的:
Writer wr = new FileWriter("123.txt");
wr.write(123 + "");
wr.close();
的+「」地連接了與整數空字符串,從而將整數解析爲字符串。很容易做和記住。
幫助了我很多。謝謝。 – SpiderRico
我在過去有一個很好的經驗PrintStream
。
ps.println("String text");
OR
ps.println(Integer.parseInt(123));
爲什麼我:
PrintStream
可以通過兩種方式(至少)OR
和寫入,使用時可以必須使int 123成爲一個o對象類型的Integer? Dosent java已經知道這是一個int值,因此應該能夠將其轉換爲字符串? Obj有什麼區別? Integer和int的數據類型? –
@AshwinGupta @AshwinGupta和其他人都想知道,這是因爲'wr.write(int)'方法實際上並沒有寫入int本身,它將'int'表示的字符寫入指定的編碼中(如果未指定,則使用utf-8 )。所以int被映射到其他字符,使它成爲一個對象,並獲取它的字符串迫使它寫下實際的整數,否則自動裝箱或拆箱會將它轉換回原始的int。請參閱:https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html#write(int) – matrixanomaly