博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
唠唠SE的IO-02——字节输入输出流
阅读量:5945 次
发布时间:2019-06-19

本文共 808 字,大约阅读时间需要 2 分钟。

hot3.png

2. 字节输入输出流

计算机中都是二进制数据,一个字节是8个2进制位。字节可以表示所有的数据,比如文本,音频,视频。

图片,都是作为字节存在的。也就是说字节流处理的数据非常多。

最基本的字节输入输出流:

InputStream和OutputStream类是Java语言里用来处理以位(bit)为主的流。

可以对音频、图像、文本等一切二进制文件进行操作处理。

按字节处理,所以对Unicode编码解析会造成乱码,所以一般不用来处理文本文件(txt等)

读取文件的步骤:

    1. 创建指定文件的输入流

    2. 通过流读入内容

    3. 用完之后及时关闭流

InputStream读取文件的方法:

1. read() 一次读取一个字节,读到文件末尾返回-1

2. read(byte[] arr) 使用read方法时,流需要读一次就处理一次,可以将读到的数据装入到字节数组中,一次性操作数组,可以提高效率

3. read(byte[] arr, int index, int length) arr显然是一个byte类型数组,当做容器来使用;

index,是指定从数组的什么位置开始存字节;length,希望读多少个

其实就是把数组的一部分当做流的容器来使用。告诉容器,从什么地方开始装,要装多少。

        如果一次性读到的内容有很多空格,解决方法:使用第三种方法,限制读取的长度

 

写入文件的步骤:

1. 创建指定文件的输出流

2. 通过流写入内容

3. 用完之后及时关闭流

OutputStream写入文件的方法:

1. 使用write(int b)方法,一次写出一个字节

2. 使用write(byte[] b),就是使用缓冲,提高效率

        如果直接写入文件,可能造成覆盖的效果,解决方法:构造方法中的boolean参数,设置为true

 

转载于:https://my.oschina.net/LinkedBear/blog/1616051

你可能感兴趣的文章
《JavaScript高级程序设计》阅读笔记(六):ECMAScript中的运算符(二)
查看>>
玩Linux的第一天
查看>>
QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码
查看>>
计算当天时间过去了几秒
查看>>
POJ 1082 Calendar Game
查看>>
js实现表格隔行变色,鼠标在该行放上移走的变色效果,还有全选,反选等
查看>>
android之JSON解析(二)
查看>>
Sharepoint学习笔记—Authentication-- 更改现有Sharepoint网站的认证方式,让其支持FBA:2.修改阶段...
查看>>
主流浏览器版本发布历史
查看>>
从源代码编译里程碑的 ICS ROM
查看>>
c#实现DES加密与解密
查看>>
"remote:error:refusing to update checked out branch:refs/heads/master"的解决办法
查看>>
百度域名信息
查看>>
php数据库配置文件一般做法
查看>>
【线性代数】正交投影
查看>>
CentOS下挂载U盘
查看>>
基于SQL和PYTHON的数据库数据查询select语句
查看>>
Java使用iText生成word文件的完美解决方案(亲测可行)
查看>>
如何高效地向Redis插入大量的数据
查看>>
深入理解JavaScript系列(14):作用域链(Scope Chain)
查看>>