Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Java ByteArrayOutputStream và các phương thức của nó với sự trợ giúp của các ví dụ.
Các ByteArrayOutputStream
lớp của java.io
gói có thể được sử dụng để viết một loạt các dữ liệu đầu ra (theo byte).
Nó mở rộng OutputStream
lớp trừu tượng.
Lưu ý : Trong ByteArrayOutputStream
duy trì một mảng byte bên trong để lưu trữ dữ liệu.
Tạo ByteArrayOutputStream
Để tạo luồng đầu ra mảng byte, java.io.ByteArrayOutputStream
trước tiên chúng ta phải nhập gói. Khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo luồng đầu ra.
// Creates a ByteArrayOutputStream with default size ByteArrayOutputStream out = new ByteArrayOutputStream();
Ở đây, chúng tôi đã tạo một luồng đầu ra sẽ ghi dữ liệu vào một mảng byte với kích thước mặc định là 32 byte. Tuy nhiên, chúng ta có thể thay đổi kích thước mặc định của mảng.
// Creating a ByteArrayOutputStream with specified size ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Ở đây, kích thước chỉ định độ dài của mảng.
Phương thức của ByteArrayOutputStream
Các ByteArrayOutputStream
lớp học cung cấp cho việc thực hiện các phương pháp khác nhau hiện diện trong OutputStream
lớp.
viết phương pháp
write(int byte)
- ghi byte được chỉ định vào luồng đầu rawrite(byte() array)
- ghi các byte từ mảng được chỉ định vào luồng đầu rawrite(byte() arr, int start, int length)
- ghi số byte bằng độ dài vào luồng đầu ra từ một mảng bắt đầu từ vị trí bắt đầuwriteTo(ByteArrayOutputStream out1)
- ghi toàn bộ dữ liệu của luồng đầu ra hiện tại vào luồng đầu ra được chỉ định
Ví dụ: ByteArrayOutputStream để ghi dữ liệu
import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is a line of text inside the string."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); byte() array = data.getBytes(); // Writes data to the output stream out.write(array); // Retrieves data from the output stream in string format String streamData = out.toString(); System.out.println("Output stream: " + streamData); out.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Đầu ra
Dòng đầu ra: Đây là một dòng văn bản bên trong chuỗi.
Trong ví dụ trên, chúng ta đã tạo một luồng đầu ra mảng byte có tên là đầu ra.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Để ghi dữ liệu vào luồng đầu ra, chúng tôi đã sử dụng write()
phương thức.
Lưu ý : getBytes()
Phương thức được sử dụng trong chương trình chuyển đổi một chuỗi thành một mảng byte.
Truy cập dữ liệu từ ByteArrayOutputStream
toByteArray()
- trả về mảng hiện diện bên trong luồng đầu ratoString()
- trả về toàn bộ dữ liệu của luồng đầu ra ở dạng chuỗi
Ví dụ,
import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is data."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); // Writes data to the output stream out.write(data.getBytes()); // Returns an array of bytes byte() byteData = out.toByteArray(); System.out.print("Data using toByteArray(): "); for(int i=0; i
Output
Data using toByteArray(): This is data. Data using toString(): This is data.
In the above example, we have created an array of bytes to store the data returned by the
toByteArray()
method.
We then have used the for loop to access each byte from the array. Here, each byte is converted into the corresponding character using typecasting.
close() Method
To close the output stream, we can use the
close()
method.
However, the
close()
method has no effect in ByteArrayOutputStream
class. We can use the methods of this class even after the close()
method is called.
Other Methods of ByteArrayOutputStream
Phương pháp | Mô tả |
---|---|
size() | trả về kích thước của mảng trong luồng đầu ra |
flush() | xóa luồng đầu ra |
To learn more, visit Java ByteArrayOutputStream (official Java documentation).