Java - Tableau d’octets au lecteur

Java - Tableau d'octets au lecteur

Dans ce rapide tutoriel, nous allons convertir un simplebyte array to a Reader en utilisant Java, Guava et enfin la bibliothèque Apache Commons IO.

Cet article fait partie dethe “Java – Back to Basic” series ici par exemple.

1. Avec Plain Java

Commençons par l'exemple Java simple, en effectuant la conversion via une chaîne intermédiaire:

@Test
public void givenUsingPlainJava_whenConvertingByteArrayIntoReader_thenCorrect()
  throws IOException {
    byte[] initialArray = "With Java".getBytes();
    Reader targetReader = new StringReader(new String(initialArray));
    targetReader.close();
}

Une autre approche consisterait à utiliser unInputStreamReader et unByteArrayInputStream:

@Test
public void givenUsingPlainJava2_whenConvertingByteArrayIntoReader_thenCorrect()
  throws IOException {
    byte[] initialArray = "Hello world!".getBytes();
    Reader targetReader = new InputStreamReader(new ByteArrayInputStream(initialArray));
    targetReader.close();
}

2. Avec goyave

Ensuite, jetons un coup d'œil à la solution Guava, en utilisant également une chaîne intermédiaire:

@Test
public void givenUsingGuava_whenConvertingByteArrayIntoReader_thenCorrect()
  throws IOException {
    byte[] initialArray = "With Guava".getBytes();
    String bufferString = new String(initialArray);
    Reader targetReader = CharSource.wrap(bufferString).openStream();
    targetReader.close();
}

Malheureusement, l’utilitaire GuavaByteSourcene permet pas une conversion directe, nous devons donc toujours utiliser la représentation String intermédiaire.

3. Avec Apache Commons IO

De même - Commons IO utilise également une représentation String intermédiaire pour convertir lesbyte[] en Reader:

@Test
public void givenUsingCommonsIO_whenConvertingByteArrayIntoReader_thenCorrect()
  throws IOException {
    byte[] initialArray = "With Commons IO".getBytes();
    Reader targetReader = new CharSequenceReader(new String(initialArray));
    targetReader.close();
}

Et là, nous l'avons - 3 façons simples deconvert the byte array into a Java Reader.