Рубрики
Без рубрики

Java – Байтовый массив для записи

Краткое руководство по преобразованию массива байтов в запись с помощью Java, Guava или Commons IO.

Автор оригинала: baeldung.

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 .