Java BufferedWriter.newLine()未在新行中写入

Java BufferedWriter.newLine()未在新行中写入,java,Java,好的,为了直截了当地说,我编写了一个简单的应用程序,在这个应用程序中,它得到了它要通过的第一行文件的字符串,然后我让它把它得到的所有字符串记录到一个txt文件中,但当它记录时,它只是继续用其他文件中的新字符串替换自己 我想让它记录它得到的字符串,然后将另一个文件中的新字符串写入新行,但我似乎无法让它工作 如果有人能帮我解决这个问题,我会非常感激 public static void main(String[] args) throws Exception { File dir = new

好的,为了直截了当地说,我编写了一个简单的应用程序,在这个应用程序中,它得到了它要通过的第一行文件的字符串,然后我让它把它得到的所有字符串记录到一个txt文件中,但当它记录时,它只是继续用其他文件中的新字符串替换自己

我想让它记录它得到的字符串,然后将另一个文件中的新字符串写入新行,但我似乎无法让它工作

如果有人能帮我解决这个问题,我会非常感激

public static void main(String[] args) throws Exception {
    File dir = new File("C://Users//Test//Desktop//lists");
    if (dir.isDirectory()) {
        for (File file : dir.listFiles()) {
            String line1 = Files.readAllLines(Paths.get(file.getAbsolutePath())).get(0);
            BufferedWriter writer = new BufferedWriter(new FileWriter("C://Users//Test//Desktop//logged.txt"));
            writer.write(line1);
            writer.newLine();
            writer.close();
        }
    }
}

您每次都可以
新建
您的
编写器
。在的开始之前添加新的行

public static void main(String[] args) throws Exception {
    File dir = new File("C://Users//Test//Desktop//lists");
    if (dir.isDirectory()) {
    BufferedWriter writer = new BufferedWriter(new FileWriter("C://Users//Test//Desktop//logged.txt"));
        for (File file : dir.listFiles()) {
            String line1 = Files.readAllLines(Paths.get(file.getAbsolutePath())).get(0);
            writer.write(line1);
            writer.newLine();
        }
            writer.close();
    }
}

您正在文本循环的每次迭代中重新打开文件
logged.txt
。这将截断文件,并重新开始写入。如果确实要重新打开文件,则需要使用附加模式:
FileWriter(“filename.txt”,true)
,但可能需要在循环之前打开
BufferedWriter
,然后关闭它。

注意: 必须在循环的之外打开和关闭writer对象

试试这个

public static void main(String[] args) throws Exception {
    File dir = new File("C://Users//Test//Desktop//lists");

    if (dir.isDirectory()) {
        BufferedWriter writer = new BufferedWriter(new FileWriter("C://Users//Test//Desktop//logged.txt"));

        for (File file : dir.listFiles()) {
            String line1 = Files.readAllLines(Paths.get(file.getAbsolutePath())).get(0);
            writer.write(line1);
            writer.newLine();
        }
        writer.close();

    }
}