唠唠SE的IO-02——字节输入输出流

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值