2013-07-05 2 views
0

Я хочу специально переписать данные в файл, начинающийся с заданной строки.Перезапись данных в файле, начинающемся с заданной строки в java

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

Также есть функция, которая непосредственно берет мою строку и строку и перезаписывает файл.

+0

ваш лучший выбор будет загружать каждую строку файла в массив. Перезапишите части массива, который вам не нужен, и перезапишите файл с помощью вашего массива. – zidsal

ответ

1

Альтернативный подход: прочитать строку строки за строкой по классу сканера (как описано ниже), сохранить эти строки в любой переменной, скажем, в arraylist, а затем добавить новую строку после прочтения строк и написать весь список в новый файл.

Пример:

File file = new File("file.txt"); 
Scanner scanner = new Scanner(file).useDelimiter("\n"); 
String line = scanner.next(); 
//Store in the list 
//Append the new lines 
//Write the whole list into a new file 
+0

Проблема для меня в том, что я буду читать большой файл и только перезаписывать небольшой нет. линий. Не читает ли весь файл неэффективно? @darshan – Dave

+1

В случае больших файлов, что вы можете сделать, читайте файл по строкам и одновременно пишите эту строку в новый файл. После того, как вы столкнетесь с строкой, которую нужно заменить, замените ее новыми строками и затем пропустите эти строки и продолжайте чтение из старого файла до тех пор, пока вы не столкнетесь с концом. Таким образом, он не будет потреблять больше памяти. –

+0

Спасибо :) @darshan – Dave

Смежные вопросы