openplanning

Hướng dẫn sử dụng Java ByteArrayOutputStream

Xem thêm các chuyên mục:

1- ByteArrayOutputStream

ByteArrayOutputStream là một lớp con của OutputStream. Đúng với cái tên, ByteArrayOutputStream được sử dụng để ghi các bytes vào một mảng byte mà nó quản lý theo cách của một OutputStream.
Các bytes được ghi vào ByteArrayOutputStream sẽ được gán vào các phần tử của mảng byteByteArrayOutputStream quản lý.
Khi số lượng các bytes  ghi vào ByteArrayOutputStream lớn hơn độ dài của mảng, ByteArrayOutputStream sẽ tạo một mảng mới với độ dài lớn hơn và copy các bytes từ mảng cũ sang.
Constructors
public ByteArrayOutputStream()  

public ByteArrayOutputStream(int initialSize)
  • Constructor ByteArrayOutputStream(int) tạo ra một đối tượng ByteArrayOutputStream với mảng byte có kích thước ban đầu chỉ định.
  • Constructor ByteArrayOutputStream() tạo ra một đối tượng ByteArrayOutputStream với mảng byte có kích thước mặc định (32).
Methods of ByteArrayOutputStream
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)

2- 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
Ví dụ, cộng 2 mảng byte để tạo ra một mảng mới.
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 !
Về cơ bản hầu hết các phương thức của ByteArrayOutputStream đều thừa kế từ OutputStream, vì vậy bạn có thể tìm thấy nhiều ví dụ hơn về cách sử dụng các phương thức này trong bài viết dưới đây:

Xem thêm các chuyên mục:

Có thể bạn quan tâm

Đây là các khóa học trực tuyến bên ngoài website o7planning mà chúng tôi giới thiệu, nó có thể bao gồm các khóa học miễn phí hoặc giảm giá.