ByteArrayInputStream bao gồm hai từ: ByteArray và InputStream. Tên của nó cho thấy, nó có thể được sử dụng để đọc mảng byte như là input stream.
Lớp ByteArrayInputStream trong java chứa một bộ đệm bên trong được sử dụng để đọc mảng byte dưới dạng luồng.
Bộ đệm của ByteArrayInputStream tự động tăng theo kích thước dữ liệu.
Khai báo của lớp ByteArrayInputStream
Dưới đây là khi báo của lớp Java.io.ByteArrayInputStream:
public class ByteArrayInputStream extends InputStream
Nội dung chính
Các constructor của lớp ByteArrayInputStream
Constructor | Mô tả |
---|---|
ByteArrayInputStream(byte[] ary) | Tạo ra một đối tượng ByteArrayInputStream mới sử dụng ary làm mảng đệm của nó. |
ByteArrayInputStream(byte[] ary, int offset, int len) | Tạo ra một đối tượng ByteArrayInputStream mới sử dụng ary làm mảng đệm của nó có thể đọc lên len quy định byte dữ liệu từ một mảng. |
Các phương thức của lớp ByteArrayInputStream
Methods | Description |
---|---|
int available() | Nó được sử dụng để trả lại số byte còn lại có thể được đọc từ input stream. |
int read() | Nó được sử dụng để đọc byte tiếp theo của dữ liệu từ input stream. |
int read(byte[] ary, int off, int len) | Nó được sử dụng để đọc lên đến len byte dữ liệu từ một mảng các byte trong input stream. |
boolean markSupported() | Nó được sử dụng để kiểm tra input stream cho các phương thức mark() và reset(). |
long skip(long x) | Nó được sử dụng để bỏ qua x các byte của đầu vào từ input stream. |
void mark(int readAheadLimit) | Nó được sử dụng để thiết lập vị trí đánh dấu hiện tại trong the stream. |
void reset() | Nó được sử dụng để thiết lập lại bộ đệm của một mảng byte. |
void close() | Nó được sử dụng để đóng ByteArrayInputStream. |
Ví dụ về đọc file trong java với lớp ByteArrayInputStream
Dưới đây là ví dụ về lớp ByteArrayInputStream trong java để đọc mảng byte như một input stream.
File: ByteArrayInputStreamExample.java
import java.io.ByteArrayInputStream; import java.io.IOException; public class ByteArrayInputStreamExample { public static void main(String[] args) throws IOException { ByteArrayInputStream bis = null; try { byte[] buf = { 35, 36, 37, 38 }; // Create the new byte array input stream bis = new ByteArrayInputStream(buf); int k = 0; while ((k = bis.read()) != -1) { // Conversion of a byte into character char ch = (char) k; System.out.println("ASCII value of Character is:" + k + "; " + "Special character is: " + ch); } } finally { bis.close(); } } }
Output:
ASCII value of Character is:35; Special character is: # ASCII value of Character is:36; Special character is: $ ASCII value of Character is:37; Special character is: % ASCII value of Character is:38; Special character is: &