我正在创建一个小程序,它将int值保存到文本文件中,保存它,并在再次启动程序时加载它。现在,我需要将3个布尔值存储在文本文件中,我正在使用
在文件中编写内容 public Formatter x;
x.format("%s", "" + m.getPoints() + "\n");
每当我想在我的文本文件中使用\ n进入新行时,它不会转到新行,它只会直接在int值后面写入。我试过这两个
x.format("%s", "" + m.getPoints() + "\n");
x.format("%s", "" + m.getStoreItem1Bought() + "\n");
和
x.format("%s%s", "" + m.getPoints() + "\n", "" + m.getBought() + "\n");
但是,两者都只是直接在int值后面写布尔值,而不是开始新行。对此有何帮助?
我使用的是Windows 7 Ultimate 64位,我的文本编辑器是Eclipse,我也在使用Eclipse运行所有代码。
答案 0 :(得分:7)
更具体地说,我建议使用:
x.format("%d%n%s%n", m.getPoints(), m.getStoreItem1Bought());
答案 1 :(得分:5)
请改用:
public static String newline = System.getProperty("line.separator");
这两个选项都有效。您的问题在于如何格式化输出:
System.out.format("%s" + newline + "%s" + newline, "test1", "test2");
System.out.format("%s%n%s", "test1", "test2");
输出:
test1
test2
test1
test2
答案 2 :(得分:3)
使用格式时,请尝试使用%n
代替\n
。有关详细信息,请参阅Formatter API并在此页面中搜索“行分隔符”,您将会看到。
答案 3 :(得分:1)
这里没问题:
System.out.format ("first: %s%s", "" + x + "\n", "" + y + "\n");
虽然我更喜欢将\ n集成到格式String中,而不是值:
System.out.format ("second: %s\n%s\n", x, y);
使用Formatter.format的工作方式相同。
答案 4 :(得分:0)
你的语法肯定非常有趣。如果你只是将字符串拼凑在一起,为什么要使用格式化方法呢?此外,既然你没有说你正在使用什么流,我们必须猜测一下,但无论如何。
无论如何我打赌1.你正在使用Windows 2.你使用的编辑器(我打赌记事本)只对\ r \ n作出反应,因为这是Windows的正确换行符。要修复此问题,请勿在代码中硬编码\ r \ n,而是使用%n并正确使用printf函数(即不要将字符串拼凑在一起!)。
否则,如果你真的需要将字符串拼凑在一起:
String newline = System.getProperty("line.separator");
x.format("%s", "" + m.getPoints() + newline);
会奏效。