Java PushbackInputStream
精华
小牛编辑
104浏览
2023-03-14
1 什么是Java PushbackInputStream
Java PushbackInputStream 类重写InputStream并为另一个输入流提供额外的功能。它可以取消读取已读取的字节,然后将其推回一个字节。
2 Java PushbackInputStream的语法
public class PushbackInputStream extends FilterInputStream
3 Java PushbackInputStream的方法
方法 | 描述 |
---|---|
int available() | 用于返回可从输入流读取的字节数。 |
int read() | 用于从输入流中读取下一个数据字节。 |
int read(byte[] b, int off, int len) | 用于从输入流中读取最多len个字节的数据到一个字节数组中。 |
boolean markSupported() | 用于判断流是否支持mark()操作。 |
void mark(int readlimit) | 用于标记输入流中的当前位置。 |
long skip(long x) | 它用于跳过和丢弃x字节的数据。 |
void unread(int b) | 用于通过将字节复制到推回缓冲区来推回该字节。 |
void unread(byte[] b) | 用于通过将字节数组复制到推回缓冲区来推回该字节数组。 |
void unread(byte[] b, int off, int len) | 用于通过将其复制到推回缓冲区的前面推回一个字节数组的一部分。 |
void reset() | 用于重置输入流。 |
void close() | 用于关闭输入流。 |
4 Java PushbackInputStream的例子
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
import java.io.*;
/**
* Java PushbackInputStream的例子
*/
public class Demo {
public static void main(String[] args)throws Exception{
String srg = "1##2#34###12";
byte ary[] = srg.getBytes();
ByteArrayInputStream array = new ByteArrayInputStream(ary);
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);
}
}
}
}
输出结果为:
1**2#34**#12