在没有溢出的文件中写入

时间:2013-05-27 08:45:30

标签: java file-io io

我有以下代码:

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,但仍然无法正常工作。你们中有人对我有一些答案吗?

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

This回答了Windows使用\r

的原因

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

答案 2 :(得分:0)

使用文本编辑器(如notepad ++)打开outUser.txt并启用“不可打印”字符。您应该会看到CR/LF,即\n

答案 3 :(得分: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();
                  }

答案 4 :(得分: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();
          }

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