Lớp PushbackInputStream trong java ghi đè các phương thức của lớp InputStream và cung cấp thêm chức năng mở rộng cho một input stream khác. Nó có thể unread một byte đã được đọc và đẩy trở lại một byte.
Khai báo của lớp PushbackInputStream
Dưới đây là khi báo của lớp Java.io.PushbackInputStream:
public class PushbackInputStream extends FilterInputStream
Nội dung chính
Các phương thức của lớp PushbackInputStream
Phương thức | Mô tả |
---|---|
int available() | Nó được sử dụng để trả về số byte có thể được đọc từinput stream. |
int read() | Nó được sử dụng để đọc byte kế tiếp của dữ liệu từ input stream. |
boolean markSupported() | Nó được sử dụng để kiểm tra xem các phương thức mark() và reset() có được hỗ trợ không. |
void mark(int readlimit) | Nó được sử dụng để đánh dấu vị trí hiện tại trong input stream. |
long skip(long x) | Nó được sử dụng để bỏ qua và loại bỏ x các byte dữ liệu. |
void unread(int b) | Nó được sử dụng để đẩy trở lại byte bằng cách sao chép nó vào bộ đệm pushback. |
void unread(byte[] b) | Nó được sử dụng để đẩy trở lại mảng của các byte bằng cách sao chép nó vào bộ đệm pushback. |
void reset() | Nó được sử dụng để thiết lập lại input stream. |
void close() | Nó được sử dụng để đóng input stream. |
Ví dụ về lớp PushbackInputStream trong java
import java.io.ByteArrayInputStream; import java.io.PushbackInputStream; public class PushbackInputStreamExample { public static void main(String[] args) throws Exception { String srg = "1##2#34###12"; byte[] byteArr = srg.getBytes(); ByteArrayInputStream array = new ByteArrayInputStream(byteArr); PushbackInputStream push = new PushbackInputStream(array); int i; while ((i = push.read()) != -1) { if (i == '#') { int j; if ((j = push.read()) == '#') { System.out.print("**"); } else { push.unread(j); System.out.print((char) i); } } else { System.out.print((char) i); } } } }
Output:
1**2#34**#12