Chương trình Java để chuyển đổi InputStream thành Byte Array

Trong ví dụ này, chúng ta sẽ học cách chuyển một luồng đầu vào thành mảng byte trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Lớp Java InputStream
  • Lớp Java ByteArrayInputStream
  • Lớp Java ByteArrayOutputStream

Ví dụ 1: Chương trình Java để chuyển đổi InputStream thành Byte Array

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // convert the input stream to byte array byte() array = stream.readAllBytes(); System.out.println("Byte Array: " + Arrays.toString(array)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Đầu ra

 Dòng đầu vào: java.io.ByteArrayInputStream@27082746 Mảng Byte: (1, 2, 3, 4)

Trong ví dụ trên, chúng ta đã tạo một luồng đầu vào có tên là luồng. Lưu ý dòng,

 byte() array = stream.readAllBytes();

Ở đây, readAllBytes()phương thức trả về tất cả dữ liệu từ luồng và lưu trữ trong mảng byte.

Lưu ý : Chúng tôi đã sử dụng Arrays.toString()phương thức để chuyển đổi toàn bộ mảng thành một chuỗi.

Ví dụ 2: Chuyển đổi InputStream thành Byte Array bằng cách sử dụng Output Stream

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // create an output stream ByteArrayOutputStream output = new ByteArrayOutputStream(); // create a byte array to store input stream byte() array = new byte(4); int i; // read all data from input stream to array while ((i = stream.read(array, 0, array.length)) != -1) ( // write all data from array to output output.write(array, 0, i); ) byte() data = output.toByteArray(); // convert the input stream to byte array System.out.println("Byte Array: " + Arrays.toString(data)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Đầu ra

 Dòng đầu vào: java.io.ByteArrayInputStream@27082746 Mảng Byte: (1, 2, 3, 4)

Trong ví dụ trên, chúng ta đã tạo một luồng đầu vào từ đầu vào mảng. Chú ý biểu thức,

 stream.read(array, 0, array.length)

Ở đây, tất cả các phần tử từ luồng được lưu trữ trong mảng, bắt đầu từ chỉ số 0 . Sau đó, chúng tôi lưu trữ tất cả các phần tử của mảng vào luồng đầu ra có tên là đầu ra.

 output.write(array, 0, i)

Cuối cùng, chúng ta gọi toByteArray()phương thức của ByteArrayOutputStreamlớp, để chuyển luồng đầu ra thành một mảng byte có tên dữ liệu.

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