使用Writer将int写入文本文件

时间:2011-09-09 06:23:46

标签: java

Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();

输出文件包含:
 {

问题出在哪里?如何使用intWriter写入文本文件?

8 个答案:

答案 0 :(得分:23)

你必须写String ...

你可以尝试。

wr.write("123");

OR

wr.write(new Integer(123).toString());

OR

wr.write( String.valueOf(123) );

答案 1 :(得分:5)

还有一种使用FileWriter将整数写入文件的非常简单的方法:

Writer wr = new FileWriter("123.txt");
wr.write(123 + "");
wr.close();

+“”将整数与空字符串连接起来,从而将整数解析为字符串。很容易做到并且要记住。

答案 2 :(得分:3)

123 = 0x7b = {的ascii代码,因此您将字符写入文件。 使用toString()方法将值转换为字符串并输出。

答案 3 :(得分:3)

Javadocs是你的朋友:

  

编写字符文件的便捷类。

}是ASCII值为123的字符。

如果您想将123的文本表示写入此文件,您可以这样做:

wr.write(Integer.toString(123));

答案 4 :(得分:2)

问题是Writer.write用于将单个字符发送到输出。目前尚不清楚为什么它是int而不是char,不可否认 - 如果您可以使用它来发送非BMP字符,但是documentation状态是有意义的:

  

写一个字符。要写入的字符包含在给定整数值的16个低位中; 16位高位被忽略。

您需要先将整数转换为字符串,例如

int v = 123; // I'm assuming this is dynamic in reality
wr.write(String.valueOf(v));

答案 5 :(得分:2)

过去PrintStream我有过很好的经历。 PrintStream可以两种方式使用(至少)

PrintStream ps = new PrintStream("file_location.txt");

OR

PrintStream ps = new PrintStream(new File("file_loc.txt"));

并写,请使用:

ps.println("String text");

OR

ps.println(Integer.parseInt(123));

答案 6 :(得分:1)

这是你正在尝试的。看到这个。

http://download.oracle.com/javase/1.4.2/docs/api/java/io/Writer.html#write(int

这是javadoc中的方法名称,如果该链接没有自动带您,则会显示。

public void write(int c)
       throws IOException

因此,123的等效ascii字符是{

由于

答案 7 :(得分:1)

还有一种方法:

wr.write(""+123); //immediately convert int to its String representation

wr.write(""+i);

但我不知道,它对性能的影响与其他方法相比如何,但写起来有点简单。 :)

PS:抱歉,我的英语可能不好