#java #arrays #text-files
#java #массивы #текстовые файлы
Вопрос:
Я пытаюсь записать несколько списков массивов в текстовый файл. Тем не менее, он продолжает перезаписывать существующее содержимое. Я хочу сохранить существующее содержимое текстового файла и продолжать добавлять к нему списки массивов. Вот мой код:
public static void writeText(String outputFile, String[] array) {
Path file = Paths.get(outputFile);
try (BufferedWriter writer = Files.newBufferedWriter(file)) {
for (String aVal : array)
writer.write(aVal "rn"); // Note addition of line terminator
} catch (IOException err) {
System.err.println(err.getMessage());
}
} // end writeText
Я думаю, что проблема с использованием path заключается в том, что он очищает существующий файл.
Есть предложения о том, как это исправить
Комментарии:
1. Используйте параметры добавления
Ответ №1:
Используйте опцию добавления
try (BufferedWriter writer = Files.newBufferedWriter(file,
StandardOpenOption.CREATE,
StandardOpenOption.APPEND)) {
Комментарии:
1. Несколько маркеров в этой строке — Метод newBufferedWriter(Path, OpenOption…) в типе Files неприменим для аргументов (String, StandardOpenOption) Я продолжаю получать это. Есть предложения?
2. Привет, теперь я сталкиваюсь с проблемой, когда он больше не создает текстовый файл! Он добавляется только к существующему текстовому файлу. Есть ли способ, которым я могу создать текстовый файл и добавить к нему
Ответ №2:
СДЕЛАЙТЕ это в своем коде:
try (BufferedWriter writer = Files.newBufferedWriter(logFile,
StandardOpenOption.CREATE, StandardOpenOption.APPEND))
StandardOpenOption.APPEND
гарантирует, что файлы открыты в режиме добавления
Комментарии:
1. Привет, теперь я сталкиваюсь с проблемой, когда он больше не создает текстовый файл! Он добавляется только к существующему текстовому файлу. Есть ли способ, которым я могу создать текстовый файл и добавить к нему
2. что вы подразумеваете под созданием текстового файла больше? и вы также говорите.. оно добавляется к текстовому файлу … не могу понять .. утверждения противоречат
3. Я пытаюсь написать метод для создания файла, а затем добавить к этому файлу
4. О, тогда вместо
StandardCharsets.UTF_8
просто добавьтеStandardOpenOption.CREATE
5. редактирование основного ответа на код также … не вините себя .. это процесс обучения