codestory

Die Anleitung zu Java ByteArrayOutputStream

  1. ByteArrayOutputStream
  2. Constructors
  3. Methods
  4. Examples

1. ByteArrayOutputStream

ByteArrayOutputStream ist eine Unterklasse von OutputStream. Wie genau der Name sagt, ByteArrayOutputStream wird verwendet um die bytes in ein Array byte zu schreiben, das es nach der Weise eines OutputStream verwaltet.
Die in ByteArrayOutputStream geschriebene bytes werden Elemente des Arraysbyte zugewiesen, das ByteArrayOutputStream verwaltet.
Wenn die Anzahl der in ByteArrayOutputStream geschriebenen bytes größer als die Länge des Array ist, erstellt ByteArrayOutputStream ein neues Array mit größerer Länge und kopiert die bytes aus dem alten Array.

2. Constructors

Constructors
public ByteArrayOutputStream()  

public ByteArrayOutputStream(int initialSize)
  • Der Konstructor ByteArrayOutputStream(int) erstellt ein Objekt ByteArrayOutputStream mit dem Array byte , das eine bestimmte Anfangsgröße hat.
  • Der Konstructor ByteArrayOutputStream() erstellt ein Objekt ByteArrayOutputStream mit dem Array byte , das die Defaultgröße hat (32).

3. Methods

Alle Methode von ByteArrayOutputStream werden aus ihre Vaterklasse - OutputStream geerbt.
void close()  
void reset()  
int size()  

byte[] toByteArray()  
String toString()  
String toString​(String charsetName)  
String toString​(Charset charset)  

void write​(byte[] b, int off, int len)  
void write​(int b)  
void writeBytes​(byte[] b)  

void writeTo​(OutputStream out)
Schauen Sie den Artikel über OutputStream an um mehrere Beispiele über diese Methoden zu erhalten.

4. Examples

ByteArrayOutputStreamEx1.java
package org.o7planning.bytearrayoutputstream.ex;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class ByteArrayOutputStreamEx1 {

    public static void main(String[] args) throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
        
        byte[] bytes1 = new byte[] {'H', 'e'};
        
        baos.write(bytes1);
        
        baos.write(108); // 'l'
        baos.write('l'); // code: 108
        baos.write('o'); // code: 111

        byte[] buffer = baos.toByteArray();
        
        for(byte b: buffer)  {
            System.out.println(b + " --> " + (char)b);
        }
    }
}
Output:
72 --> H
101 --> e
108 --> l
108 --> l
111 --> o
Z.B: Fügen Sie beispielweise 2 Arrays byte hinzu, um ein neues Array zu erstellen.
ByteArrayOutputStreamEx3.java
package org.o7planning.bytearrayoutputstream.ex;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class ByteArrayOutputStreamEx3 {

    public static void main(String[] args) throws IOException {
        byte[] arr1 = "Hello ".getBytes();
        byte[] arr2 = new byte[] {'W', 'o', 'r', 'l', 'd', '!'};
        
        byte[] result = add(arr1, arr2);
        
        for(byte b: result)  {
            System.out.println(b + " " + (char)b);
        }
    }

    public static byte[] add(byte[] arr1, byte[] arr2) {
        if (arr1 == null) {
            return arr2;
        }
        if (arr2 == null) {
            return arr1;
        }
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
            baos.write(arr1);
            baos.write(arr2);
        } catch (Exception e) {
            // Never happened!
        }
        return baos.toByteArray();
    }
}
Output:
72 H
101 e
108 l
108 l
111 o
32  
87 W
111 o
114 r
108 l
100 d
33 !
Grundsätzlich erben die meisten Methode von ByteArrayOutputStream von OutputStream. Deshalb können Sie mehrere Beispiele zur Verwendung dieser Methode im folgenden Artikel finden.

Die Anleitungen Java IO

Show More