\ n将无法工作,不会换新线

时间:2011-05-06 23:52:21

标签: java store text-files

我正在创建一个小程序,它将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运行所有代码。

5 个答案:

答案 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);

会奏效。