1. Обзор
В этом очень кратком уроке мы обсудим, как преобразовать byte[] в Writer с помощью простых Java, Guava и Commons IO.
2. С простой Java
Давайте начнем с простого решения Java:
@Test public void givenPlainJava_whenConvertingByteArrayIntoWriter_thenCorrect() throws IOException { byte[] initialArray = "With Java".getBytes(); Writer targetWriter = new StringWriter().append(new String(initialArray)); targetWriter.close(); assertEquals("With Java", targetWriter.toString()); }
Обратите внимание, что мы преобразовали наш байт[] в Writer через промежуточную строку .
3. С Гуавой
Далее – давайте рассмотрим более сложное решение с гуавой:
@Test public void givenUsingGuava_whenConvertingByteArrayIntoWriter_thenCorrect() throws IOException { byte[] initialArray = "With Guava".getBytes(); String buffer = new String(initialArray); StringWriter stringWriter = new StringWriter(); CharSink charSink = new CharSink() { @Override public Writer openStream() throws IOException { return stringWriter; } }; charSink.write(buffer); stringWriter.close(); assertEquals("With Guava", stringWriter.toString()); }
Обратите внимание, что здесь мы преобразовали byte[] в Writer с помощью Char-приемника .
4. С помощью Commons IO
Наконец, давайте проверим наше решение Commons IO:
@Test public void givenUsingCommonsIO_whenConvertingByteArrayIntoWriter_thenCorrect() throws IOException { byte[] initialArray = "With Commons IO".getBytes(); Writer targetWriter = new StringBuilderWriter( new StringBuilder(new String(initialArray))); targetWriter.close(); assertEquals("With Commons IO", targetWriter.toString()); }
Примечание: Мы преобразовали наш byte[] в StringBuilderWriter с помощью StringBuilder .
5. Заключение
В этом коротком и по существу учебном пособии мы проиллюстрировали 3 различных способа преобразования byte[] в Writer .
Код для этой статьи доступен в репозитории GitHub .