回退流:
使用InputStream要使用read()方法不断读取,是采用顺序的读取方式。
回退流的操作机制:
回退操作同样分为字节流和字符流,下面以字节流举例
。
PushbackInputStream类常用方法:
对于回退操作来说,提供了三个unread()的操作方法,这三个操作方法与InputStream类中的read()方法是一一对应的。
内存中使用ByteArrayInputStream,把内容设置到内存之中。
内存中使用ByteArrayInputStream,把内容设置到内存之中。
import java.io.ByteArrayInputStream ; import java.io.PushbackInputStream ; public class PushInputStreamDemo{ public static void main(String args[]) throws Exception { // 所有异常抛出 String str = "www.mldnjava.cn" ; // 定义字符串 PushbackInputStream push = null ; // 定义回退流对象 ByteArrayInputStream bai = null ; // 定义内存输入流 bai = new ByteArrayInputStream(str.getBytes()) ; // 实例化内存输入流 push = new PushbackInputStream(bai) ; // 从内存中读取数据 System.out.print("读取之后的数据为:") ; int temp = 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) ; // 输出内容 } } } };