Рубрики
Без рубрики

Java – InputStream для чтения

Как преобразовать входной поток в читатель с помощью Java, Guava и библиотеки ввода-вывода Apache Commons.

Автор оригинала: Eugen Paraschiv.

В этом кратком руководстве мы рассмотрим преобразование InputStream в Reader с использованием Java, затем Guava и, наконец, Apache Commons IO.

Эта статья является частью серии “Java – Back to Basic” здесь, на Baeldung.

1. С Java

Во – первых, давайте рассмотрим простое решение Java- использование легкодоступного InputStreamReader :

@Test
public void givenUsingPlainJava_whenConvertingInputStreamIntoReader_thenCorrect() 
  throws IOException {
    InputStream initialStream = new ByteArrayInputStream("With Java".getBytes());
    
    Reader targetReader = new InputStreamReader(initialStream);

    targetReader.close();
}

2. С Гуавой

Далее – давайте взглянем на решение Guava – использование промежуточного массива байтов и строки:

@Test
public void givenUsingGuava_whenConvertingInputStreamIntoReader_thenCorrect() 
  throws IOException {
    InputStream initialStream = ByteSource.wrap("With Guava".getBytes()).openStream();
    
    byte[] buffer = ByteStreams.toByteArray(initialStream);
    Reader targetReader = CharSource.wrap(new String(buffer)).openStream();

    targetReader.close();
}

Обратите внимание, что решение Java проще, чем этот подход.

3. С помощью Commons IO

Наконец – решение с использованием Apache Commons IO – также с использованием промежуточной строки:

@Test
public void givenUsingCommonsIO_whenConvertingInputStreamIntoReader_thenCorrect() 
  throws IOException {
    InputStream initialStream = IOUtils.toInputStream("With Commons IO");
    
    byte[] buffer = IOUtils.toByteArray(initialStream);
    Reader targetReader = new CharSequenceReader(new String(buffer));

    targetReader.close();
}

И вот вам он – 3 быстрых способа преобразования входного потока в Java Reader . Обязательно ознакомьтесь с образцом на GitHub .