0

我有以下代码:

FileWriter filewriter = null;
try { filewriter = new FileWriter("outUser.txt", true); } 
catch (IOException e1) { e1.printStackTrace(); }

try {
    filewriter.write(s1+"\n");
    filewriter.flush();
}
catch (IOException e1) { e1.printStackTrace(); }

它应该写在outUser文件s1 string和换行符上。它只写s1,不写换行符。我还尝试了一个等于\n并在写入时将其附加到的新字符串,s1但仍然无法正常工作。你们有没有人给我一些答案?

4

5 回答 5

2

换行应该在那里,但请记住,不同的操作系统具有不同的换行符。
如果你运气不好,你可以随时尝试BufferedWriter.newLine()

于 2013-05-27T08:50:36.820 回答
2

不同的操作系统有不同的方式来表示换行符。

例如,\n在 UNIX\r\n中使用,但在 Windows 中使用。

回答了为什么 windows 使用\r

您可以使用System.lineSeparator()返回与系统相关的行分隔符字符串。

于 2013-05-27T08:55:57.487 回答
0

使用记事本++ 之类的文本编辑器打开您outUser.txt的文件并启用“不可打印”字符。您应该看到一个CR/LF,它是\n

于 2013-05-27T08:52:22.617 回答
0

以下应该工作

FileWriter filewriter = null;
try {
                     filewriter = new FileWriter("outUser.txt", true);
                     BufferedWriter buffWriter = new BufferedWriter(fileWriter);  
                  } catch (IOException e1) {
                     e1.printStackTrace();
                  }
                  try {
                      buffwriter.write(s1+"\n");
                      buffWriter.newLine();
                     buffwriter.flush();
                     }
                  catch (IOException e1) {
                     e1.printStackTrace();
                  }
于 2013-05-27T08:53:38.107 回答
0

这样做

FileWriter filewriter = null;

         try {
             filewriter = new FileWriter("c:\\outUser.txt", true);
          } catch (IOException e1) {
             e1.printStackTrace();
          }
          try {
              filewriter.write("hi"+System.getProperty("line.separator"));
              filewriter.write("asd");
             filewriter.flush();
             }
          catch (IOException e1) {
             e1.printStackTrace();
          }

使用行分隔符属性将下一行打印到 File 。

于 2013-05-27T08:53:44.937 回答