Java ByteArrayOutputStream (Có ví dụ)

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 ByteArrayOutputStreamlớp của java.iogó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 OutputStreamlớp trừu tượng.

Lưu ý : Trong ByteArrayOutputStreamduy 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.ByteArrayOutputStreamtrướ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 ByteArrayOutputStreamlớ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 OutputStreamlớp.

viết phương pháp

  • write(int byte) - ghi byte được chỉ định vào luồng đầu ra
  • write(byte() array) - ghi các byte từ mảng được chỉ định vào luồng đầu ra
  • write(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 đầu
  • writeTo(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 ra
  • toString() - 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).

thú vị bài viết...