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