有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在新行中写入字符串

我无法在文件中的新行中写入字符串,尽管我在字符串末尾添加了“\n”

public void writeEquation(String fileName, String expr) {     
        File aFile = new File(fileName);
        try {
            FileWriter writer = new FileWriter(aFile, true);
            BufferedWriter buffered = new BufferedWriter(writer);
            buffered.write(expr+"\n");
            buffered.flush();
            buffered.close();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }

错在哪里


共 (2) 个答案

  1. # 1 楼答案

    为什么不使用BufferedWriter类提供的newLine()方法呢

    Writes a line separator. The line separator string is defined by the system property line.separator, and is not necessarily a single newline ('\n') character.

    在代码中,更改:

     buffered.write(expr+"\n");
    

    致:

     buffered.write(expr);
     buffered.newLine();
    

    稍后编辑:我也不确定你想要新行在哪里,但是如果你想确保你的expr字符串被添加到文件末尾的新行上,那么在调用buffered.write(expr)之前调用该方法,比如:

    buffered.newLine();
    buffered.write(expr);
    
  2. # 2 楼答案

    使用BufferedWriterBufferedWriter.newLine()方法。这将有助于克服依赖操作系统的怪癖