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.