Lớp PushbackReader trong java ghi đè các phương thức của lớp FilterReader và cung cấp thêm các chức năng mở rộng. Nó được sử dụng để đọc một luồng ký tự và có thể đẩy trở lại một ký tự vào stream.
Khai báo của lớp PushbackReader
Dưới đây là khi báo của lớp Java.io.PushbackReader:
public class PushbackReader extends FilterReader
Các phương thức của lớp PushbackReader
Phương thức | Mô tả |
---|---|
int read() | Nó được sử dụng để đọc một ký tự duy nhất. |
void mark(int readAheadLimit) | Nó được sử dụng để đánh dấu vị trí hiện tại trong một stream. |
boolean ready() | Nó được sử dụng để kiểu tra liệu luồng đã sẵn sàng để được đọc. |
boolean markSupported() | Nó được sử dụng để cho biết liệu các stream hỗ trợ phương thức mark(). |
long skip(long n) | Nó được sử dụng để bỏ qua n ký tự. |
void unread (int c) | Nó được sử dụng để đẩy trở lại ký tự bằng cách sao chép nó vào bộ đệm pushback. |
void unread (char[] cbuf) | Nó được sử dụng để đẩy trở lại mảng các ký tự 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 stream. |
void close() | Nó được sử dụng để đóng stream. |
Ví dụ về lớp PushbackReader trong java
import java.io.CharArrayReader; import java.io.PushbackReader; public class PushbackReaderExample { public static void main(String[] args) throws Exception { char ary[] = { '1', '-', '-', '2', '-', '3', '4', '-', '-', '-', '5', '6' }; CharArrayReader reader = new CharArrayReader(ary); PushbackReader push = new PushbackReader(reader); int i; while ((i = push.read()) != -1) { if (i == '-') { int j; if ((j = push.read()) == '-') { System.out.print("#*"); } else { push.unread(j); // push back single character System.out.print((char) i); } } else { System.out.print((char) i); } } } }
Output:
1#*2-34#*-56