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 .