我从命令行(示例)中读取了以下字符串:
abcgefgh0111010111100000
我将其作为流处理以到达二进制的第一个位置(在本例中为位置 9)。代码如下:
String s=args[0];
ByteArrayInputStream bis=new ByteArrayInputStream(s.getBytes());
int c;
int pos=0;
while((c=bis.read())>0)
{
if(((char)c)=='0' || ((char)c)=='1') break;
pos++;
}
bis.mark(pos-1);\\this does not help
bis.reset();\\this does not help either
System.out.println("Data begins from : " + pos);
byte[] arr=new byte[3];
try{
bis.read(arr);
System.out.println(new String(arr));
}catch(Exception x){}
现在 Arraystream 将从位置 10('1') 开始读取。
如何使其后退一个位置以实际从第 9 位的第一个二进制数字('0')开始再次读取。
bis.mark(pos-1)
否则重置无济于事。