Java基础18 read(byte[] b) read()区别 字节高效缓冲流

1.一次读取多个字节
public int read(byte[] b)
参数: 读取的字节存放到数组 数据类似于缓冲区
返回值:表示读取的有效的字节个数
2.代码

package day18;

import java.io.FileInputStream;
import java.io.IOException;

public class Test04 {
   
    public static void main(String[] args) throws IOException {
   
        byte[] b = new byte[2];
        FileInputStream fis = new FileInputStream("E:\\admin01\\d.txt");
        //调用读的方法
        int leng = fis.read(b);
        System.out.println(new String(b));
        System.out.println(leng);
        int leng1 = fis.read(b);
        System.out.println(new String(b));
        System.out.println(leng1);
        int leng2 = fis.read(b);
        System.out.println(new String(b));
        System.out.println(leng2);
        int leng3 = fis.read(b);
        System.out.println(new String(b));
        System.out.println(leng3);
        int leng4 = fis.read(b);
        System.out.println(new String(b));
        System.out.println(leng4);
        //关闭资源
        fis.close();
    }
}

结果图
在这里插入图片描述
在这里插入图片描述
最后读取字节数组,不够时往回读,但返回的是准确的数字,当读完所有再读时返回-1;

一、字符缓冲流

1.BufferedInputStream 输入缓冲区流 读取 加快读取速度(高效流)
2.BufferedOutputStream 输出缓冲区流 写入 加快写入速度(高效流)
3.注意点:
BufferedInputStream 与BufferedOutputStream 没有读写的功能 只是对InputStream 与
OutputStream
的封装 提供了一个缓冲区的数组 加快读写操作的速度
4.构造方法
在这里插入图片描述
5.高效流 高效的原因

BufferedInputStream 高效流的底层提供了一个缓冲的数组 这个数组的长度是8127个字节
使用高效流进行读取的时候 一次读取8127的字节的数据放入到缓冲区的数组,再进行读取数据的时候
就从缓冲区中获取数据(内存中) 如果8127字节的数据全部读取完毕之后 又从新读取8127个字节
填入到
缓冲区中 可以避免反复与磁盘来进行交互 从内存中获取数据 数据会更加快 所以高效
BufferedOutputStream 高效的原因与上面的一样
理解:即再内存与磁盘交互之间 在内存中开辟一个专门读取的空间,这个空间与磁盘交互更快,这个空间一次读取8127个字节,内存往这个空间读取数据,数据不够时这个空间再去磁盘读取

package day18;

import java.io.*;

public class Test03 {
   
    public static void main(String[] args) throws IOException {
   
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值