2013-05-04 3 views
2

Я хочу открыть файл, а затем прочитать его по строкам. В некоторых строках я хочу добавить строку точно в эту строку. Это возможно?Как прочитать файл по строкам и добавить строку в строку?

У меня есть код для открытия файла и читать его, как следующее:

File file = new File("MyFile.txt"); 
BufferedReader bufRdr = new BufferedReader(new FileReader(file)); 

String line = null; 

try { 
    while((line = bufRdr.readLine()) != null) 
    { 
     // read line by line and append some string to the line 

    } 
} catch (IOException e) { 
    // ... 
} 

, но как я могу добавить строку в текущей строке и записать его в файл?

+1

Вы должны использовать временный файл. Сначала напишите в файл temp, а затем переименуйте его. –

ответ

1

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

Так же, как

try { 
    while((line = bufRdr.readLine()) != null) 
    { 
    // read line by line and append some string to the line 
    //pseudo code 
    newline = line + "yourtext"; 
    outputstreamtootherfile.write(newline); 

    } 
} 

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

Благодаря

0

Создайте новый файл и продолжайте писать в этот файл (как вы читаете другой файл по строкам) с необходимой модификацией. Затем удалите существующий файл и дайте вновь созданному файлу имя удаляемого файла. Вот как я подхожу к нему.

Вот ссылка, которая подтверждает этот подход наряду с другими альтернативами.

Modify a .txt file in Java

0
  1. readLines читать строки в List<String> и изменить некоторые строки (строки), если вам это нужно
  2. создать новый временный файл
  3. линии записи (или построчно) к нему append
  4. удалить старый файл
  5. переименовывать
Смежные вопросы