Проблема с перезаписью файлов 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, и используйте один это позволяет добавлять в файл.