2015-03-06 2 views
0

Я хотел бы удалить новый символ строки в середине строки файла, пока он читает файл.Удалить новый символ линии из середины строки файла в java

Если я собираюсь прочитать файл с помощью BufferedReader, тогда он распознается как новая строка и разделяет линию посередине. Я хочу, чтобы иметь возможность читать файл и удалять эти новые строковые символы в середине во время чтения. Формат каждой строки - простой Json.

Спасибо

+0

Я немного медленный. «BufferedReader» будет читать строки, используя 'readLine()' отбрасывание завершающей новой строки. Можно записать в файл _second_, записать каждую строку, а затем написать новую строку, кроме середины. Или что? –

+0

Это пахнет проблемой [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Если каждая строка проста Json, разве вы не можете просто проанализировать ее с помощью парсера Json? Просьба привести пример вашего ввода, чтобы мы могли понять вашу проблему. –

+1

Наверное, я понимаю, что это неправильно: вы говорите, есть новый символ линии в середине строки? Это невозможно, потому что у вас две строки. Или вы читаете несколько байтов в буфер и хотите избавиться от символов новой строки? Вместо просто читать readLine(). – Joachim

ответ

1

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

0

Если я правильно истолковываю ваш вопрос, то то, что вы хотите сделать, не так просто, как «читать и писать в одно и то же время». Вам нужна петля и StringBuilder.

public String readFileWithNoLines(BufferedReader reader) throws IOException { 
    StringBuilder builder = new StringBuilder(); 
    String line; 
    while((line = reader.readLine()) != null) { 
     builder.append(line); 
    } 
    return builder.toString(); 
} 

Затем вы хотите записать возвращаемое значение этой функции в файл.

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