Как удалить строчку из файла на java?

Пользователь

от wilburn , в категории: Java , 10 месяцев назад

Как удалить строчку из файла на java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от delphine_bartoletti , 10 месяцев назад

@wilburn 

Для удаления строчки из файла на Java можно использовать следующий подход:

  1. Сначала необходимо прочитать содержимое файла в память и сохранить его в некоторой структуре данных (например, в список строк).
  2. Затем удалить нужную строчку из списка.
  3. После этого нужно записать оставшиеся строки обратно в файл, перезаписывая его содержимое.


Пример реализации может выглядеть следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class RemoveLineFromFile {
    public static void main(String[] args) {
        // Имя файла
        String fileName = "file.txt";
        // Удаляемая строка
        String lineToRemove = "Line to remove";

        try {
            // Чтение содержимого файла
            List<String> lines = new ArrayList<>();
            BufferedReader reader = new BufferedReader(new FileReader(fileName));
            String line;
            while ((line = reader.readLine()) != null) {
                lines.add(line);
            }
            reader.close();

            // Удаление строки
            lines.remove(lineToRemove);

            // Запись обновленного содержимого в файл
            BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
            for (String line : lines) {
                writer.write(line);
                writer.newLine();
            }
            writer.close();

            System.out.println("Строка "" + lineToRemove + "" успешно удалена из файла.");
        } catch (IOException e) {
            System.out.println("Ошибка при чтении/записи файла: " + e.getMessage());
        }
    }
}


В примере файл с именем "file.txt" должен находиться в рабочей директории программы. Строка "Line to remove" будет удалена из файла.

Пользователь

от clifford , 5 месяцев назад

@wilburn 

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