Как удалить строку из файла в Java?

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

от richie_mayert , в категории: Java , 2 года назад

Как удалить строку из файла в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от mona_terry , 2 года назад

@richie_mayert 

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

от charles.orn , год назад

@richie_mayert 

Чтобы удалить строку из файла в Java, необходимо выполнить следующие шаги:

  1. Открыть исходный файл для чтения и временный файл для записи.
  2. Прочитать каждую строку из исходного файла и проверить, является ли она строкой, которую нужно удалить.
  3. Если строка не соответствует той, которую нужно удалить, записать ее во временный файл.
  4. После завершения чтения и записи всех строк закрыть исходный и временный файлы.
  5. Удалить исходный файл.
  6. Переименовать временный файл в исходное имя файла.


Вот пример кода, который реализует данный алгоритм:

 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
39
40
41
import java.io.*;

public class RemoveLineFromFile {
    public static void main(String[] args) {
        String filename = "file.txt"; // имя исходного файла
        String temppath = "temp.txt"; // путь к временному файлу

        try {
            File inputFile = new File(filename);
            File tempFile = new File(temppath);

            BufferedReader reader = new BufferedReader(new FileReader(inputFile));
            BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));

            String lineToRemove = "строка, которую нужно удалить";
            String currentLine;

            while ((currentLine = reader.readLine()) != null) {
                // Если текущая строка не совпадает со строкой, которую нужно удалить, записываем ее во временный файл
                if (!currentLine.equals(lineToRemove)) {
                    writer.write(currentLine);
                    writer.newLine();
                }
            }

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

            inputFile.delete(); // Удаляем исходный файл
            tempFile.renameTo(inputFile); // Переименовываем временный файл в исходное имя файла

            System.out.println("Строка успешно удалена из файла.");
        } catch (FileNotFoundException ex) {
            System.out.println("Файл не найден.");
            ex.printStackTrace();
        } catch (IOException ex) {
            System.out.println("Ошибка при работе с файлом.");
            ex.printStackTrace();
        }
    }
}


Замените file.txt на имя и путь к нужному файлу, а строка, которую нужно удалить на строку, которую вы хотите удалить.