Java IO _回退流

1.掌握回退流的工作原理

2.使用PushbackInputStream 类完成回退操作

回退:给了用户第二次读的机会。

Java IO _回退流_第1张图片

使用InputStream 要使用read() 方法不断读取,是采用顺序的读取方式。

Java IO _回退流_第2张图片

回退操作同样分为字节流和字符流,本教程还是以字节流为准。

Java IO _回退流_第3张图片

对于回退操作来说,提供了三个unread() 的操作方法,这三个操作方法与InputStream 类中的read() 方法是一一对应的。

内存中使用ByteArrayInputStream, 把内容设置到内存之中。

[java]  view plain copy
  1. import java.io.ByteArrayInputStream ;  
  2. import java.io.PushbackInputStream ;  
  3. public class PushInputStreamDemo{  
  4.     public static void main(String args[]) throws Exception {   // 所有异常抛出  
  5.         String str = "www.mldnjava.cn" ;        // 定义字符串  
  6.         PushbackInputStream push = null ;       // 定义回退流对象  
  7.         ByteArrayInputStream bai = null ;       // 定义内存输入流  
  8.         bai = new ByteArrayInputStream(str.getBytes()) ;    // 实例化内存输入流  
  9.         push = new PushbackInputStream(bai) ;   // 从内存中读取数据  
  10.         System.out.print("读取之后的数据为:") ;  
  11.         int temp = 0 ;   
  12.         while((temp=push.read())!=-1){  // 读取内容  
  13.             if(temp=='.'){  // 判断是否读取到了“.”  
  14.                 push.unread(temp) ; // 放回到缓冲区之中  
  15.                 temp = push.read() ;    // 再读一遍  
  16.                 System.out.print("(退回"+(char)temp+")") ;  
  17.             }else{  
  18.                 System.out.print((char)temp) ;  // 输出内容  
  19.             }  
  20.         }  
  21.     }  
  22. };  

你可能感兴趣的:(java,回退)