使用Writer将int写入文本文件

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

输出文件包含:
{

哪里有问题? 如何使用Writerint写入文本文件?

你必须写String …

你可以试试。

 wr.write("123"); 

要么

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

要么

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

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

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

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

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

Javadocs是你的朋友:

用于编写字符文件的便捷类。

是ASCII值为123的字符。

如果要将123的文本表示写入此文件,则需要执行以下操作:

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

问题是Writer.write用于将单个字符发送到输出。 char ,为什么它是int而不是char是不明白的 – 如果你可以使用它来发送非BMP字符,那将是有意义的,但文档说明:

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

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

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

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

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

要么

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

并写,使用:

 ps.println("String text"); 

要么

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

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

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

这是javadoc im reffering to中的方法名称,如果链接没有自动引导你。

 public void write(int c) throws IOException 

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

谢谢

还有一种方法:

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

要么

 wr.write(""+i); 

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

PS:对不起,我的英语可能不好