Hướng dẫn và ví dụ Java ByteArrayOutputStream
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.


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 byte mà ByteArrayOutputStream 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).
Tất cả các phương thức của ByteArrayOutputStream đều được thừa kế từ lớp cha của nó - OutputStream.
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)
Xem bài viết về OutputStream để có thêm các ví dụ về các phương thức này.
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: