Как удалить конкретную строку в текстовом файле? - PullRequest
0 голосов
/ 19 марта 2011

Как я могу удалить определенную строку в текстовом файле?

1 Ответ

21 голосов
/ 19 марта 2011

Найдите файл.

File file = new File("/path/to/file.txt");

Создайте временный файл (в противном случае сначала нужно прочитать все в память Java).

File temp = File.createTempFile("file", ".txt", file.getParentFile());

Определить кодировку.

String charset = "UTF-8";

Определите строку, которую вы хотите удалить.

String delete = "foo";

Откройте файл для чтения.

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));

Откройте временный файл для записи.

PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(temp), charset));

Чтение файла строка за строкой.

for (String line; (line = reader.readLine()) != null;) {
    // ...
}

Удаление строки из строки.

    line = line.replace(delete, "");

Запись ее во временный файл.

    writer.println(line);

Закройте устройство чтения и записи (желательно в блоке finally).

reader.close();
writer.close();

Удалите файл.

file.delete();

Переименуйте временный файл.

temp.renameTo(file);

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...