Проблема с перезаписью файлов filewriter вместо добавления в конец

хорошо, у меня возникли проблемы с записью нескольких строк в текстовый файл.

программа запускается, но она не будет использовать новые строки каждый раз

когда я хочу запустить его 4 раза, текстовый файл должен выглядеть так:

a
b
c
d

вместо этого он выглядит так:

d

кто знает, как решить эту проблему? все импортируемые правильно импортируются.

источник (он был слегка отредактирован, предположим, что все правильно определено):

import java.io.*;
public class Compiler {
public static void main (String args[]) throws IOException
{
    //there's lots of code here
    BufferedWriter outStream= new BufferedWriter(new FileWriter("output.txt"));
    outStream.newLine();
    outStream.write(output);
    outStream.close();
}

}

3 ответов


убедитесь, что при создании экземпляра FileWriter, что вы добавляете к концу этого. Это можно сделать с помощью этот конкретный FileWriter конструктор что требует дополнительного boolean как второй параметр. Это boolean рассказывает FileWriter для добавления в конец файла, а не для перезаписи файла.

BufferedWriter outStream= new BufferedWriter(new FileWriter("encoded.txt", true));

по умолчанию FileWriter перезапишет файл. То, что вы можете сделать, это определить читателя следующим образом:
new FileWriter("encoded.txt", true)
Таким образом, файл будет добавляется будучи перезаписаны.

Надеюсь, это поможет!


Я не уверен, что этот код должен делать. Он выдает ошибку, если входная строка имеет длину более одного символа, потому что вы закрываете файловую машинку внутри цикла, а затем пытаетесь записать ее снова.

я интерпретирую ваш вопрос следующим образом: вам интересно, почему только самые свежие данные в файл. В этом случае это потому, что вы не создали свой файл в режиме добавления. Посмотрите на различные конструкторы, доступные для FileWriter, и используйте один это позволяет добавлять в файл.