Что мне сначала преобразовать поток байтов, поток буфера или поток символов? - PullRequest
0 голосов
/ 26 мая 2019

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

  1. С учетом OutputStream объекта os (например, FileOutputStream объект или System.out), кажется, есть два способа получить буферизованный поток символов:

    new BufferedWriter(new OutputStreamWriter(os));
    
    new OutputStreamWriter(new BufferedOutputStream(os));
    

    Какие различия между ними?

  2. Дан InputStream объект is (такой как FileInputStream объект или System.in), кажется, есть два способа получить буферный символ Поток:

    new BufferedReader(new InputStreamReader(is));
    
    new InputStreamReader(new BufferedInputStream(is));
    

    Какие различия между ними?

1 Ответ

0 голосов
/ 27 мая 2019
  1. Как указано в javadoc для OutputStreamWriter

Символы, передаваемые в методы write (), не буферизируются.
ДляДля максимальной эффективности рассмотрите возможность помещения OutputStreamWriter в BufferedWriter, чтобы избежать частых вызовов конвертера. Например:
Writer out = new BufferedWriter (new OutputStreamWriter (System.out));

Поскольку результирующие байты после преобразования накапливаются в буфере, нет необходимости вставлять BufferedStream в канал после OutputStreamWriter

Таким образом, обычный способ заключается в использовании:

new BufferedWriter(new OutputStreamWriter(os));
Аналогичная причина для InputStreamReader

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

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