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