\n won't work, not going to a new line

后端 未结 5 767
隐瞒了意图╮
隐瞒了意图╮ 2021-01-14 02:48

I\'m creating a small program that saves a int value into a text file, saves it, and loads it when you start the program again. Now, I need 3 more booleans to be stored in t

相关标签:
5条回答
  • 2021-01-14 03:23

    More specifically, I would recommend using:

    x.format("%d%n%s%n", m.getPoints(), m.getStoreItem1Bought());
    
    0 讨论(0)
  • 2021-01-14 03:23

    Use this instead:

    public static String newline = System.getProperty("line.separator");
    

    Both of this options work. Your problem is in how you format the output:

    System.out.format("%s" + newline + "%s" + newline, "test1", "test2");
    System.out.format("%s%n%s", "test1", "test2");
    

    Output:

    test1
    test2
    test1
    test2
    
    0 讨论(0)
  • 2021-01-14 03:34

    No problem here:

    System.out.format ("first: %s%s", "" + x + "\n", "" + y + "\n");
    

    While I would prefere, to integrate the \n into the format String, not the values:

    System.out.format ("second: %s\n%s\n", x, y);
    

    Using Formatter.format works the same.

    0 讨论(0)
  • 2021-01-14 03:48

    Try using %n instead of \n when using format. For details on this, please see the Formatter API and search this page for "line separator" and you'll see.

    0 讨论(0)
  • 2021-01-14 03:49

    Well your syntax is surely quite.. interesting. Why use the formatting method if you're just piece the string together anyways? Also since you nowhere say what stream you're using we have to guess a bit, but anyways.

    Anyways I'm betting that 1. you're using windows and 2. that the editor (I bet on notepad) you're using only reacts to \r\n since that's the correct newline for Windows. To fix this DON'T hardcode \r\n in your code but instead use %n and use the printf function correctly (ie don't piece the string together!).

    Otherwise if you really have to piece the string together:

    String newline = System.getProperty("line.separator");
    x.format("%s", "" + m.getPoints() + newline);
    

    will work.

    0 讨论(0)
提交回复
热议问题