Java - байтовый массив для писателя
1. обзор
В этом очень быстром руководстве мы обсудим, как преобразоватьbyte[] to 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());
}
Обратите внимание, что мы преобразовали нашbyte[] вWriter через промежуточныйString.
3. С гуавой
Далее - давайте рассмотрим более сложное решение с помощью Guava:
@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, используяCharSink.
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.
Код для этой статьи доступен вthe GitHub repository.