Java >> Java tutorial >  >> Tag >> byte

Java – Byte Array til Writer

1. Oversigt

I denne meget hurtige selvstudie vil vi diskutere, hvordan man konverterer byte[] til Writer ved at bruge almindelig Java, Guava og Commons IO.

2. Med almindelig Java

Lad os starte med en simpel Java-løsning:

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

Bemærk, at vi konverterede vores byte[] til en Forfatter gennem en mellemliggende streng .

3. Med Guava

Dernæst – lad os se nærmere på en mere kompleks løsning med 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());
}

Bemærk, at vi her konverterede byten[] til en Forfatter ved at bruge en CharSink .

4. Med Commons IO

Lad os endelig tjekke vores Commons IO-løsning:

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

Bemærk:Vi konverterede vores byte[] til StringBuilderWriter ved hjælp af en StringBuilder .

5. Konklusion

I denne korte og konkrete vejledning illustrerede vi 3 forskellige måder at konvertere en byte[] på til en Forfatter .

Koden til denne artikel er tilgængelig i GitHub-lageret.


Java tag