Использование BufferedReader

Я использую метод с использованием BufferedReader, и я должен использовать его в качестве входного аргумента, может ли кто-нибудь сказать мне, как использовать его в качестве входного аргумента, но инициализировать его вне метода?

Другое дело, как заставить буфер читать специальные символы? (например: ´, ~)

public static List<Pacote<Pair<String, Double>>> create(
BufferedReader fileReader, int capacidadePacotes)
throws IOException {
        List retorno = new ArrayList <> (6);
        String s;
        while ((s=fileReader.readLine())!=null){
            retorno.add(parseItem(s));
        }
        return retorno;

    }

Он в основном читает файл и отправляет его другой функции, которая обрабатывает текст и создает объекты на его основе, я просто не совсем понимаю, используя BufferedReader в качестве входного аргумента, просто использовал его внутри метода раньше, поэтому я неясно, как его правильно инициализировать, возможно, глупый вопрос, но я хотел бы знать, как это сделать правильно


person user3343824    schedule 20.03.2014    source источник
comment
Укажите, что именно вы хотите сделать, и хотите ли вы прочитать файл? вы хотите передать объект буферизованного считывателя конструктору? Что вы пробовали (покажите код).   -  person Thresh    schedule 20.03.2014
comment
s = fileReader.readLine ())! = null? Вы написали правильный код?   -  person Harsh    schedule 20.03.2014
comment
Это часть вопроса, я действительно не понимаю бит BufferedReader этого, я обычно делаю такой цикл, чтобы прочитать буферизованный файл   -  person user3343824    schedule 20.03.2014


Ответы (2)


Вы можете инициализировать объект BufferedReader следующим образом, если пытаетесь прочитать файл.

public static void main(String[]args) {
    BufferedReader rdr = new BufferedReader(new FileReader("filepath"));
    int capacidadePacotes = 10;
    create(rdr, capacidadePacotes);
}
//urcode for create

Буферизованный считыватель может читать строку за строкой с помощью метода readLine (). Если вы читаете null, это означает, что вы достигли конца файла. Более читаемый способ использования буферизованного считывателя будет следующим:

String s = rdr.readLine();
while(s != null) { //while u didn't reach the end of the file
    //your code
    s = rdr.readLine();
}
person Thresh    schedule 20.03.2014
comment
Спасибо! Разве не считал основной класс! - person user3343824; 20.03.2014

Если вы хотите инициализировать его «вне» метода, почему бы не передать его вот так:

create(new BufferedReader(reader, 3));

Или как именно вы хотите создать его экземпляр? Для создания экземпляра вам понадобится Reader, который можно передать. Если вы хотите создать Reader из файла, ответ также находится по следующей ссылке.

Как читать специальные символы с помощью BufferedReader:

Чтение специальных символов в java с помощью BufferedReader

person Adracus    schedule 20.03.2014
comment
Спасибо! Ссылка очень помогла! - person user3343824; 20.03.2014