Java - Tableau d’octets à auteur

Java - Tableau d'octets à écrivain

1. Vue d'ensemble

Dans ce didacticiel très rapide, nous allons expliquer comment convertir desbyte[] to Writer en utilisant Java, Guava et Commons IO.

2. Avec Plain Java

Commençons par une solution Java simple:

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

Notez que nous avons converti nosbyte[] en unWriter via unString intermédiaire.

3. Avec goyave

Ensuite, examinons une solution plus complexe avec 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());
}

Notez qu'ici, nous avons converti lesbyte[] enWriter en utilisant unCharSink.

4. Avec Commons IO

Enfin, voyons notre solution 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());
}

Remarque: Nous avons converti nosbyte[] enStringBuilderWriter en utilisant unStringBuilder.

5. Conclusion

Dans ce court et précis didacticiel, nous avons illustré 3 façons différentes de convertir unbyte[] en unWriter.

Le code de cet article est disponible enthe GitHub repository.