1.掌握回退流的工作原理
2.使用PushbackInputStream 类完成回退操作
回退:给了用户第二次读的机会。
使用InputStream 要使用read() 方法不断读取,是采用顺序的读取方式。
回退操作同样分为字节流和字符流,本教程还是以字节流为准。
对于回退操作来说,提供了三个unread() 的操作方法,这三个操作方法与InputStream 类中的read() 方法是一一对应的。
内存中使用ByteArrayInputStream, 把内容设置到内存之中。
- importjava.io.ByteArrayInputStream;
- importjava.io.PushbackInputStream;
- publicclassPushInputStreamDemo{
- publicstaticvoidmain(Stringargs[])throwsException{//所有异常抛出
- Stringstr="www.mldnjava.cn";//定义字符串
- PushbackInputStreampush=null;//定义回退流对象
- ByteArrayInputStreambai=null;//定义内存输入流
- bai=newByteArrayInputStream(str.getBytes());//实例化内存输入流
- push=newPushbackInputStream(bai);//从内存中读取数据
- System.out.print("读取之后的数据为:");
- inttemp=0;
- while((temp=push.read())!=-1){//读取内容
- if(temp=='.'){//判断是否读取到了“.”
- push.unread(temp);//放回到缓冲区之中
- temp=push.read();//再读一遍
- System.out.print("(退回"+(char)temp+")");
- }else{
- System.out.print((char)temp);//输出内容
- }
- }
- }
- };