下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Java基础知识之ByteArrayInputStream流的使用目录JavaByteArrayInputStream流一、ByteArrayInputStream流定义二、ByteArrayInputStream流实例域三、ByteArrayInputStream流构造函数四、ByteArrayInputStream流方法五、ByteArrayInputStream流的作用六、ByteArrayInputStream的用法解析
JavaByteArrayInputStream流
一、ByteArrayInputStream流定义
API说明:ByteArrayInputStream包含一个内部缓冲区,其中包含可以从流中读取的字节,内部计数器跟踪read方法提供的下一个字节,关闭ByteArrayInputStream流无效,关闭流后调用类的方法不会有异常产生
二、ByteArrayInputStream流实例域
*字节数组缓冲区,buf[0]到buf[count-1]是可以从流中读取的字节,buf[pos]是读取的下一字节
protectedbytebuf[];
*读取字节的索引
protectedintpos;
*流中当前标记的位置,默认标记为0,可以通过mark方法设置新的标记点,而后通过reset方法将当前位置设置为标记点
*从标记点开始读取数据
*@sinceJDK1.1
protectedintmark=0;
*索引结束位置+1,不大于缓冲区的长度
protectedintcount;
三、ByteArrayInputStream流构造函数
*使用指定字节数组创建ByteArrayInputStream流,字节数组为流的缓冲区,
*当前位置索引pos初始值是0,索引结束位置count的是buf的长度
publicByteArrayInputStream(bytebuf[]){
this.buf=buf;
this.pos=0;
this.count=buf.length;
*使用指定的数组创建ByteArrayInputStream流
*目标数组为流的缓冲区数组
*缓冲区当前起始位置变量值为off
*缓冲区的索引结束位置为:buf.length和off+length的最小值
publicByteArrayInputStream(bytebuf[],intoffset,intlength){
this.buf=buf;
this.pos=offset;
this.count=Math.min(offset+length,buf.length);
this.mark=offset;
}
四、ByteArrayInputStream流方法
1)read():从此输入流中读取下一个字节并返回,当流到达末尾时,返回-1
*从此输入流中读取下一个字节并返回
*当流到达末尾时,返回-1
*注意0xff是字节的补码操作,暂时不用理会
publicsynchronizedintread(){
return(poscount)(buf[pos++]0xff):-1;
}
2)read(byteb[],intoff,intlen):从输入流中读取最多len个字节到目标数组中,返回实际读取的字节数
*从输入流中读取最多len个字节到目标数组中,返回实际读取的字节数
*当缓冲区中剩余字符数小于len个字节时,读取缓冲区剩余字符数
*当剩余字符数大于len个字节时,读取len个字节
publicsynchronizedintread(byteb[],intoff,intlen){
if(b==null){
thrownewNullPointerException();
}elseif(off0||len0||lenb.length-off){
thrownewIndexOutOfBoundsException();
if(pos=count){
return-1;
intavail=count-pos;
if(lenavail){
len=avail;
if(len=0){
return0;
System.arraycopy(buf,pos,b,off,len);
pos+=len;
returnlen;
}
3)close():关闭流无效,关闭后调用其它方法不会有异常
*关闭流无效,关闭后调用其它方法不会有异常
publicvoidclose()throwsIOException{
}
五、ByteArrayInputStream流的作用
暂时不理解具体作用,不清楚什么时候会用到该流,因为实际项目暂未用到,故先了解其功能即可
六、ByteArrayInputStream的用法解析
看下面这个程序,看懂了就会了
importjava.io.ByteArrayInputStream;
importjava.io.File;
importjava.io.IOException;
publicclassTest4{
//ByteArrayInputStream本身操作的是一个数组,并没有打开文件描述之类的,所有不需要关闭流
publicstaticvoidmain(String[]args){
ByteArrayInputStreambais=null;
StringBuildersb=newStringBuilder();
inttemp=0;
intnum=0;
longdate1=System.currentTimeMillis();
try{
byte[]b="abcdefghijklmnopqstuvxyz".getBytes();
//从字符数组b中读取数据,从下标为2开始计数读8个
bais=newByteArrayInputStream(b,2,8);
while((temp=bais.read())!=-1){
sb.append((char)temp);
num++;
System.out.println(sb);
System.out.println("读取的字节数:"+num);
}finally{
try{
bais.close();//不需要关闭流的,但是调用close没有任何影响,close不做任何事情
}catch(IOExceptione){
e.printStackTrace();
newFile("d:"+File.separator+"a.txt");//File.s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芳香油原料加工工岗前操作安全考核试卷含答案
- 纤维染色工安全宣贯测试考核试卷含答案
- 货运汽车司机岗前技术评优考核试卷含答案
- 家用电冰箱制造工创新实践测试考核试卷含答案
- 铁渣处理工诚信品质知识考核试卷含答案
- 兽药制造工安全生产规范评优考核试卷含答案
- 印后制作员安全生产意识模拟考核试卷含答案
- 煤间接液化合成操作工成果转化模拟考核试卷含答案
- 护工岗前安全生产知识考核试卷含答案
- 仓储管理员保密考核试卷含答案
- 2026中国邮政校园招聘笔试历年参考题库附带答案详解
- 普外科质量管理工作制度
- 《切花北美冬青生产技术规范》
- 酒店采购供应商管理制度
- 第11课 少年当自强 第一课时 课件(内嵌视频) 2025-2026学年统编版道德与法治二年级下册
- 伐木清理施工方案(3篇)
- 外贸业务员客户管理制度
- 国铁集团招聘考试题目
- 2025年生态环境监测授权签字人考试题(含答案)
- 中医针灸师实践技能考核要点试卷及答案
- 宠物美容与护理操作手册(标准版)
评论
0/150
提交评论