首页 > 编程知识 正文

java 字节数组,字节数组输出流

时间:2023-05-04 09:52:35 阅读:227950 作者:4013

一、IO流 A:什么是IO流: IO流用于处理设备之间的数据传输JAVA对于数据的操作都是通过流的操作 数据流操作都是在 IO包中 B:类型: 按照流操作分类: 输入流 输出流按照流操作的数据类型分类: 字节流:字节流可以操作数据,计算机任何数据都是以字节的形式存储字符流:字符流只能操作纯字符数据,方便操作数据 C:IO程序书写 使用前:导入IO包使用时:进行IO异常处理 (二)InputStream/OutputStream

InputStream方法:

1.read();//一次读取一个字节2.read(byte[] but);//将字节读取到字节数组 返回数组中多少个字节3.read(but,offset,length);//将字节读取到but数组,存入到but数组的offset位置,存入length长度4.available();//可读取的字节数,读一个少一个5.skip(long n);//读取一个字节后跳过n个

注意:换行 空格 enter(确定)等都算一个字节

OutputStream方法:

1.write();//一次 写一个 到输出流2.write(byte[] but);//将数 组中的字节 写到输出流3.write(byte[] b,int off,int len)//将字节数组b,从b的off位置 写len个到输出流4.flush();//刷新此输出流并 强制 写出 所有缓冲的输出字节。

注意:

flush(); 在write以后 要刷新输出流 ,强制所有缓冲字节 写出来close(); 关闭输出流资源写出中文字节时候要注意 编码合适 不同的编码格式显示出的字节不一样

System.out.println();和System.out.write();

println() 本身是输出一个换行 newLine();去判断内容是否空 newLine(); 本身包含刷新缓冲字节(字符)流 write() 是 写出一个字节,不包含flush(); (三)ByteArrayInputStream/ByteArrayOutputStream

A:缓冲区 (在内存中字节数组)

优点 提高数据传输效率减少IO操作 ByteArrayInputStream/ByteArrayOutputStream的缓冲区 底层其实是 内存中的字节数组 输入流/输出流 的字节都会 存储在 一个新建的字节数组 读入/写入 就操作将底层新建字节数组

ByteArrayInputStream的方法

继承了InputStream所有方法还继承了: 重复读取字节,三个方法要配合使用 清爽的火龙果Supported();//检测是否支持标记 返回boolean类型清爽的火龙果(int readlimit); //标记当前数组 配合 输入流对象.reset(); 进行重新读取字节数组具体要看 缓冲区的大小,与readlimit大小无关 reset();//将此流重新定位到最后一次对此输入流调用 清爽的火龙果 方法时的位置。

ByteArrayOutputStream的方法

write(int b);//将指定的字节写入此 byte 数组输出流。write(byte[] b,int off,int len)//将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte 数组输出流。writeTo(OutputStream out) //将此 byte 数组输出流的全部内容写入到指定的输出流参数中,这与使用 out.write(buf, 0, count) 调用该输出流的 write 方法效果一样。reset();//将此 byte 数组输出流的 count字段重置为零,从而丢弃输出流中目前已累积的所有输出。通过重新使用已分配的缓冲区空间,可以再次使用该输出流。toByteArray();//创建一个新分配的 byte 数组。其大小是此输出流的当前大小,并且缓冲区的有效内容已复制到该数组中。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。