“\ n”在使用BufferWriter将文本文件保存到文本时不添加新行

时间:2017-05-19 04:38:56

标签: java file

大家好我试图在现有文件中添加一行新的字符串,但是代码我已经将它附加到最后一个字符串。我通过在附加到文件的字符串中添加一个新行字符来修复它,是否有另一种方法在文件末尾的新行上附加字符串而不将新行字符添加到字符串的开头?

String name = "\nbob";
BufferedWriter out = new BufferedWriter(new FileWriter("names.txt",true));
    out.write(name);
    out.close();

当前档案:

bill
joe
john

追加

bill
joe
john
bob

不带换行符附加

bill
joe
johnbob

3 个答案:

答案 0 :(得分:3)

在将新名称写入文件之前,您可以使用newLine()方法。

答案 1 :(得分:3)

\n将在此处附加到您的文件中;但很明显,你只是以一种你认为没有新行的方式来查看它。

如果您正在使用Windows,\n不是正确的行分隔符:请改用\r\n

String name = "\r\nbob";

Windows使用\r\n作为行分隔符;记事本(仍然)等工具无法正确处理非Windows行结尾。

请注意,使用out.newLine()不一定是正确的方法:这意味着将使用当前平台的行分隔符。 可能是正确的;但如果您在* nix上运行此代码,并且原始文件是在Windows上生成的(并且必须在Windows上继续正确读取),则不会,因为将使用\n。 "写一次,随处运行"在这里工作不太好。

答案 2 :(得分:0)

使用Java 7. BufferedWritter类为break新行提供newLine()方法。您可以按照此示例操作。 example link

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterDemo {
    //file path
    private static final String FILENAME = "/home/farid/Desktop/bw.txt";
    public static void main(String[] args) {
    //BufferedWriter api        //https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html
        try(BufferedWriter bw = new BufferedWriter(new FileWriter(FILENAME))) {
            String str = "This is the content to write into file";
            //write method
            bw.write(str);
            //break new line
            bw.newLine();
            String seconStr = "This is the content to write into file.";
            //write method
            bw.write(seconStr);
            //break new line
            bw.newLine();
            //console print message
            System.out.println("Successfully compeleted");
            //BufferedWritter close
            bw.flush();
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class BufferedWriterDemo { //file path private static final String FILENAME = "/home/farid/Desktop/bw.txt"; public static void main(String[] args) { //BufferedWriter api //https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html try(BufferedWriter bw = new BufferedWriter(new FileWriter(FILENAME))) { String str = "This is the content to write into file"; //write method bw.write(str); //break new line bw.newLine(); String seconStr = "This is the content to write into file."; //write method bw.write(seconStr); //break new line bw.newLine(); //console print message System.out.println("Successfully compeleted"); //BufferedWritter close bw.flush(); bw.close(); } catch (IOException e) { e.printStackTrace(); } } }