Lớp ByteArrayOutputStream trong java được sử dụng để ghi dữ liệu chung vào nhiều file. Trong luồng này, dữ liệu được ghi vào mảng byte có thể được ghi vào nhiều stream sau đó.
ByteArrayOutputStream giữ một bản sao của dữ liệu và chuyển tiếp nó đến nhiều stream.
Bộ đệm của ByteArrayOutputStream tự động tăng theo kích thước dữ liệu.
Khai báo của lớp ByteArrayOutputStream
Dưới đây là khi báo của lớp Java.io.ByteArrayOutputStream:
public class ByteArrayOutputStream extends OutputStream
Nội dung chính
Các constructor của lớp ByteArrayOutputStream
Constructor | Mô tả |
---|---|
ByteArrayOutputStream() | Tạo một ByteArrayOutputStream mới với dung lượng ban đầu là 32 byte, tuy nhiên kích thước của nó được tăng lên nếu cần thiết. |
ByteArrayOutputStream(int size) | Tạo một ByteArrayOutputStream mới với dung lượng bộ đệm có kích thước quy định theo byte. |
Các phương thức của lớp ByteArrayOutputStream
Phương thức | Mô tả |
---|---|
int size() | Nó được sử dụng để trả về kích thước hiện tại của một bộ đệm. |
byte[] toByteArray() | Nó được sử dụng để tạo ra một mảng byte mới được phân bổ. |
String toString() | Nó được sử dụng để chuyển đổi nội dung thành một chuỗi byte giải mã bằng cách sử dụng một bộ ký tự mặc định. |
String toString(String charsetName) | Nó được sử dụng để chuyển đổi nội dung thành một chuỗi byte giải mã bằng cách sử dụng một charsetName cụ thể. |
void write(int b) | Nó được sử dụng để ghi các byte được chỉ định. |
void write(byte[] b, int off, int len | Nó được sử dụng để ghi len byte từ mảng byte xác định bắt đầu từ off . |
void writeTo(OutputStream out) | Nó được sử dụng để ghi nội dung hoàn chỉnh đến output stream cụ thể. |
void reset() | Nó được sử dụng để thiết lập lại trường count của đối tượng ByteArrayOutputStream về giá trị 0. |
void close() | Nó được sử dụng để đóng ByteArrayOutputStream. |
Ví dụ về ghi file trong java với lớp ByteArrayOutputStream
Dưới đây là ví dụ đơn giản về ByteArrayOutputStream để ghi dữ liệu chung vào 2 file f1.txt và f2.txt.
import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; public class ByteArrayOutputStreamExample { public static void main(String args[]) throws Exception { FileOutputStream fout1 = null; FileOutputStream fout2 = null; ByteArrayOutputStream bout = null; try { fout1 = new FileOutputStream("D:\\f1.txt"); fout2 = new FileOutputStream("D:\\f2.txt"); bout = new ByteArrayOutputStream(); String data = "Hello"; bout.write(data.getBytes()); bout.writeTo(fout1); bout.writeTo(fout2); bout.flush(); System.out.println("Success..."); } catch (IOException ex) { ex.printStackTrace(); } finally { fout1.close(); fout2.close(); bout.close(); } } }
Output:
Success...
Nội dung của 2 file f1.txt và f2.txt như sau:
File: f1.txt
Hello
File: f2.txt
Hello