Есть ли эквивалент BufferedReader.readLine (), который позволяет мне выбрать символы конца строки? - PullRequest
14 голосов
/ 01 апреля 2009

Javadoc для BufferedReader.readLine () говорит:

Строка считается завершенной любым из перевода строки ('\ n'), возврат каретки ('\ r') или возврат каретки, за которым сразу следует перевод строки.

Мне нужно немного лучшее управление, чем это (например, я хотел бы иметь возможность указать, что конец строки равен "\ r \ n", чтобы "\ n" само по себе не заканчивало строку). 1009 *

Есть ли какая-либо JDK или библиотечная функция, которая делает это?

Ответы [ 3 ]

12 голосов
/ 01 апреля 2009

Попробуйте использовать Сканер класс:

String line = Scanner(file).useDelimiter("\r\n").next();
1 голос
/ 01 апреля 2009

В зависимости от того, для какого варианта использования вам нужен BufferedReader, вы можете перейти на использование класса Scanner, который может читать текст из разных источников (файлов, потоков) и имеет прямой метод, который задает шаблон разграничения. Смотри http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html#useDelimiter(java.lang.String)

0 голосов
/ 01 апреля 2009

Я не знаю ни одного стандартного API, который бы соответствовал этому.

Можно просто прочитать в ВЕСЬ файл в строку и затем разбить его на желаемый конечный символ.

for(String line: testFile.split("\r\n")){
...
}
...