PrintWriter удаляет старое содержимое текстового файла при записи

1

Поэтому давайте скажем, что у меня есть txt файл, с которым я хочу писать с помощью PrintWriter. Почему следующий код удаляет старое содержимое файла каждый раз при его вызове?

Код:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class Test {

    public static void main(String[] args) {
        writeToFile("foo");
        writeToFile("bar");
    }

    public static void writeToFile(String text) {
        try {
            PrintWriter printer = new PrintWriter(new File("myTextFile.txt"));
            printer.println("Your text is:" + text);
            printer.close();
        } catch (FileNotFoundException fnfe) {
            fnfe.printStackTrace();
        }
    }

}

Вывод:

Your text is:bar

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

Теги:
text
printwriter

1 ответ

2
Лучший ответ

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

Чтобы сделать это на Java, используйте new FileWriter("myfile.txt", true). Затем вы можете обернуть PrintWriter, если хотите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню