Автор оригинала: 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 .