Как удалить определенную строку из файла?
Хм, а что это за оператор «finally»? Это тоже нужно во избежание ошибки?
Сергей Семенко @abler98 Автор вопроса
Кстати, достаточно было просто вставлять перенос после каждой строки.
Сергей Семенко: finally секция срабатывает в любом случае, когда был exception или когда его не было. Следовательно в нем закрываются reader и writer, потому что если написать эти строчки в конце try, а программа вылетит с exception, то reader и writer не будут закрыты.
Сергей Семенко @abler98 Автор вопроса
Удаление одной строки из текстового файла
Задача, такая. Надо удалить определенную строку из файла. Использую я вот такой метод, он удаляет строку и перезаписывает её в новый файл. Новый файл переименовывает. Но что то тут не так, в компиляторе появляется сообщение java.io.IOException: Stream closed
Вот сам метод
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
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) { String outputLine = jTextField3.getText(); String ln; File sourceFile = new File("Dictio.txt"); File outputFile = new File ("Dictio2.txt"); try{BufferedReader reader = new BufferedReader(new FileReader(sourceFile)); BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile)); while ((ln = reader.readLine()) != null) { if (!ln.equals(outputLine)) { writer.newLine(); writer.write(ln); } writer.close(); reader.close(); } sourceFile.delete(); outputFile.renameTo(sourceFile); } catch (Exception e) { System.err.println( e); } }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Удаление строки из текстового файла
Всем привет. Пишу функцию, которая будет удалять строку из текстового файла. В данную функцию я.
Удаление строки из текстового файла
Здравствуйте, нужно удалить все четные числа из файла .txt. Не могу никак найти удаление строки из.
Удаление строки из текстового файла
Добро всем! :senor: У меня возникла задача удалить из txt, тоесть выбираю строку в мемо затем.
Удаление строки из текстового файла
Здравствуйте, помогите исправить проблему, есть программа которая при запуске записывает данные в.
4090 / 3824 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
Так вы внутри цикла вызываете close(). Вынесите его за пределы.
PS. научитесь формтировать код, это избавит от кучи проблем.
Регистрация: 02.05.2016
Сообщений: 11
Теперь создает 2 одинаковых файла, с одинаковой информацией внутри. При чем просто перезаписывает текст из sourceFile в outputFile (это если в ручную удалить строку из файла sourceFile ).
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
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) { String outputLine = jTextField3.getText(); String ln; File sourceFile = new File("Dictio.txt"); File outputFile = new File ("Dictio2.txt"); try { BufferedReader reader = new BufferedReader(new FileReader(sourceFile)); BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile)); while ((ln = reader.readLine()) != null) { if (!ln.equals(outputLine)) { writer.write(ln); writer.newLine(); } } writer.close(); reader.close(); outputFile.renameTo(sourceFile); sourceFile.delete(); }catch (IOException ex) { System.err.println("Could not find the file"); }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Полное удаление строки текстового файла
Помогите кто знает, облазит уж точно половину C# Cyberфорума, ничего не нашел подомного имеется.
Удаление строки с номером k из текстового файла
Пожалуйста, помогите с задачей: "Дано число k и текстовый файл. Удалить из файла строку с номером.
RemoveString: удаление строки из текстового файла
И снова всем привет. Возник следующий вопрос удаления строки из текстового файла, сделал такую.
Удаление по заданному слову строки из текстового файла с помощью цикла FOR
как через for удалить строку из txt файла? например вводим имя файла, то что нужно удалить и далее.
Функция: сравнение первой строки первого текстового файла и последней строки второго файла
Даны два текстовый файла, состоящие из некоторого количества строк. Написать функцию для сравнения.
Удаление из текстового файла
Доброго времени суток! Помогите, пожалуйста! Очень нужно на SWI Prolog решение следующей задачи.
Удаление из фай строки по совпадению
есть вот такая программа которая удаляет из файла совпадение по переменной int , вот собственно вопрос состоит в том что если BufferedWriter writer = new BufferedWriter(new FileWriter(«C:\\Users\\Михаил\\Desktop\\1.txt»)); находится в верху то программа кидает ошибку , а файл становится пустой но если его переместить в низ под удаление copyFile.remove(remove); то всё работает нормально не пойму в чем причина?
import java.io.*; import java.util.ArrayList; import java.util.List; public class bufferedreader public static void main(String[] args) throws IOException ArrayListString> copyFile = new ArrayList>(); BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\Михаил\\Desktop\\1.txt")); BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\Users\\Михаил\\Desktop\\1.txt")); int id = 19847; int remove = 0; String s; while ((s = reader.readLine()) != null) copyFile.add(s); > for (int i = 0; i copyFile.size();i++) int z = Integer.parseInt(copyFile.get(i).substring(0,8).trim()); if (z == id) remove = i; > > copyFile.remove(remove); // если сюда переместить BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\Users\\Михаил\\Desktop\\1.txt")); то всё ок for (String sw: copyFile) System.out.println(sw); writer.write(sw + "\r\n"); > reader.close(); writer.close(); > >
Удаление строки из текстового файла
Всем привет.
Пишу функцию, которая будет удалять строку из текстового файла. В данную функцию я передаю слово, далее функция читает файл по строчно, каждую считанную строку разделяю и проверяю совпадения первого слова со словом, которое было передано в функцию. Если оно совпало, то строка не записывается в новый файл, иначе производится запись в новый файл. По окончанию первый файл я удаляю, а второй переименовываю. Но проблема в том, что возникает ошибка, не могу понять по какой причине она возникает.
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
public boolean DeleteInfoUsers(String deleteString) { File sourceFile = new File("Login.txt"); File outputFile = new File("tmpLogin.txt"); try { BufferedReader reader = new BufferedReader(new FileReader(sourceFile)); BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile)); String deleteLine; while((deleteLine = reader.readLine()) != null) { String[] Buffer = deleteLine.split(" "); String tmp = Buffer[0]; System.out.println(Buffer[0]); if(!deleteString.equals(tmp)) { writer.write(deleteLine); writer.newLine(); } sourceFile.delete(); outputFile.renameTo(sourceFile); reader.close(); writer.close(); } } catch(IOException err) { System.out.println("Ошибка"); } return false; }