Построить BufferedReader с BufferedReader в качестве читателя - PullRequest
0 голосов
/ 05 октября 2011

Могу ли я сделать это Subj?Я имею в виду:

 BufferedReader reader1 = new BufferedReader(new FileReader(new File("file")));
 BufferedReader reader2 = new BufferedReader(reader1);

Что произойдет, если я попытаюсь использовать BufferedReader (второй) в этом случае?Это правильно?

Ответы [ 3 ]

1 голос
/ 05 октября 2011

Да, вы можете украсить любую Reader BufferedReader, но это не даст вам никакой пользы.

1 голос
/ 05 октября 2011

Это правильно в том смысле, что это будет работать:

Вы можете построить BufferedReader из любого допустимого Reader, даже другого BufferedReader.

Однако это не улучшит производительность и не окажет каких-либо других полезных эффектов. Вы должны просто использовать reader1 и не создавать второй.

Это может даже иметь негативные последствия, если вы начнете смешивать вызовы reader1 и reader2, но это всего лишь общая идея потока в Java: как только вы оберните поток (или читатель / писатель) ), вы больше не должны обращаться к нему напрямую.

0 голосов
/ 06 октября 2011

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

 /**
  * Creates a buffering character-input stream that uses a default-sized
  * input buffer.
  *
  * @param  in   A Reader
  */
  public BufferedReader(Reader in) {
      this (in, defaultCharBufferSize);
  }

http://developer.classpath.org/doc/java/io/BufferedReader-source.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...