Java IO--回退流PushbackInputStream-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Java IO--回退流PushbackInputStream

简介: <h1>回退流:</h1> <p><img src="http://img.blog.csdn.net/20131115083218546" alt=""><br></p> <p><span style="font-size:18px">使用InputStream要使用read()方法不断读取,是采用顺序的读取方式。</span><br></p> <h1>回退流的操作机制:</h1>

回退流:


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

回退流的操作机制:

回退操作同样分为字节流和字符流,下面以字节流举例

PushbackInputStream类常用方法:


对于回退操作来说,提供了三个unread()的操作方法,这三个操作方法与InputStream类中的read()方法是一一对应的。
内存中使用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) ;	// 输出内容
			}
		}
	}
};


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章