Java - ライターへのバイト配列

Java –ライターへのバイト配列

1. 概要

この非常に簡単なチュートリアルでは、プレーンJava、Guava、Commons IOを使用してbyte[] to Writerを変換する方法について説明します。

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[]を中間のStringを介してWriterに変換したことに注意してください。

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());
}

ここでは、CharSinkを使用してbyte[]Writerに変換したことに注意してください。

4. コモンズIO

最後に、CommonsIOソリューションを確認しましょう。

@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());
}

注:StringBuilderを使用してbyte[]StringBuilderWriterに変換しました。

5. 結論

この短くて要点のチュートリアルでは、byte[]Writerに変換する3つの異なる方法を説明しました。

この記事のコードはthe GitHub repositoryで入手できます。