Writer wr = new FileWriter("123.txt");
wr.write(123);
wr.close();
输出文件包含:
{
问题出在哪里?如何使用int
将Writer
写入文本文件?
答案 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:抱歉,我的英语可能不好