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.