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

Java – Байтовый массив для чтения

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

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

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

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

1. С простой Java

Давайте начнем с простого примера Java, выполняя преобразование с помощью промежуточной строки:

@Test
public void givenUsingPlainJava_whenConvertingByteArrayIntoReader_thenCorrect() 
  throws IOException {
    byte[] initialArray = "With Java".getBytes();
    Reader targetReader = new StringReader(new String(initialArray));
    targetReader.close();
}

Альтернативным подходом было бы использование InputStreamReader и ByteArrayInputStream :

@Test
public void givenUsingPlainJava2_whenConvertingByteArrayIntoReader_thenCorrect() 
  throws IOException {
    byte[] initialArray = "Hello world!".getBytes();
    Reader targetReader = new InputStreamReader(new ByteArrayInputStream(initialArray));
    targetReader.close();
}

2. С Гуавой

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

@Test
public void givenUsingGuava_whenConvertingByteArrayIntoReader_thenCorrect() 
  throws IOException {
    byte[] initialArray = "With Guava".getBytes();
    String bufferString = new String(initialArray);
    Reader targetReader = CharSource.wrap(bufferString).openStream();
    targetReader.close();
}

К сожалению, утилита Guava Byte Source не допускает прямого преобразования, поэтому нам все равно нужно использовать промежуточное строковое представление.

3. С Apache Commons IO

Аналогично – Commons IO также использует промежуточное строковое представление для преобразования byte[] в считыватель:

@Test
public void givenUsingCommonsIO_whenConvertingByteArrayIntoReader_thenCorrect() 
  throws IOException {
    byte[] initialArray = "With Commons IO".getBytes();
    Reader targetReader = new CharSequenceReader(new String(initialArray));
    targetReader.close();
}

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