用于判断字符结尾的输入流类
来源:互联网 发布:淘宝网店转让qc41 编辑:程序博客网 时间:2024/05/17 05:03
import java.io.IOException;
import java.io.InputStream;
public class CharTerminatedInputStream extends InputStream {
private InputStream in;
private int match[];
private int buffer[];
private int pos = 0;
private boolean endFound = false;
public CharTerminatedInputStream(InputStream in, byte[] terminator) {
if (terminator == null) {
throw new IllegalArgumentException("The terminating character array cannot be null.");
}
if (terminator.length == 0) {
throw new IllegalArgumentException("The terminating character array cannot be of zero length.");
}
match = new int[terminator.length];
buffer = new int[terminator.length];
for (int i = 0; i < terminator.length; i++) {
match[i] = (int) terminator[i];
buffer[i] = (int) terminator[i];
}
this.in = in;
}
public synchronized void reset() {
endFound = false;
pos = 0;
}
public int read() throws IOException {
if (endFound) {
return -1;
}
if (pos == 0) {
int b = in.read();
if (b == -1) {
endFound = true;
return -1;
}
if (b != match[0]) {
return b;
}
buffer[0] = b;
pos++;
} else {
if (buffer[0] != match[0]) {
return topChar();
}
}
for (int i = 0; i < match.length; i++) {
if (i >= pos) {
int b = in.read();
if (b == -1) {
return topChar();
}
buffer[pos] = b;
pos++;
}
if (buffer[i] != match[i]) {
return topChar();
}
}
endFound = true;
return -1;
}
private int topChar() {
int b = buffer[0];
if (pos > 1) {
System.arraycopy(buffer, 1, buffer, 0, pos - 1);
}
pos--;
return b;
}
}
- 用于判断字符结尾的输入流类
- 用于判断字符结尾的输出流类
- 用于字符输入的流成员函数
- 用于字符输入的流成员函数使用举例
- 判断结尾是不是某个字符
- Getchar函数从标准输入读取读取一个字符并返回它的值。如果输入中不再存在任何字符,函数就会返回常量EOF(在stdio.h中定义),用于提示文件的结尾。
- 文件操作函数feof判断是否指向文件的结尾处,结尾即为空字符
- 文件结尾的判断
- JAVA判断输入流字符编码的困惑
- JAVA判断输入流字符编码的困惑
- JAVA判断输入流字符编码的困惑
- 截取分号结尾的字符
- 字符串结尾字符的含义
- 判断字符串的结尾类型
- 输入字符类型的半判断
- 判断输入的字符是否是数字
- 判断输入的字符是否为中文
- js判断textarea输入的字符数
- 霍金自我挑战“黑洞悖论”
- 沟通非阻塞IO与阻塞IO - 输入流
- ONLY ENYA
- 沟通非阻塞IO与阻塞IO - 出入流
- 龙星计划:网格及对等分布式计算技术
- 用于判断字符结尾的输入流类
- 获得用户的帐号信息
- 用于判断字符结尾的输出流类
- S.O.S 的由来
- 只能谈情不能说爱
- 一个正则表达式的类
- 数据流图划分疑问—泡泡的细分
- 7月23日
- 转贴的几个小技巧,什么时候有空了整理一下