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

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

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

Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.

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();
}

К сожалению, утилита GuavaByteSource не поддерживает прямое преобразование, поэтому нам по-прежнему необходимо использовать промежуточное представление String.

3. С Apache Commons IO

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

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

Вот и все - 3 простых способа выполнитьconvert the byte array into a Java Reader.