其他分享
首页 > 其他分享> > BufferedInputStream字节缓冲输入流,缓冲流的效率测试_复制文件

BufferedInputStream字节缓冲输入流,缓冲流的效率测试_复制文件

作者:互联网

BufferedInputStream字节缓冲输入流:

java.io.BufferedInputstream extends Inputstream

BufferedinputStream:字书缓冲输入流

继承自父类的成员方法:

int read()从输入流中读取数据的下一个字节。

int read(byte[ ] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。

void close()关闭此输入流并释放与该流关联的所有系统资源。

 

构造方法:

BufferedInputStream(InputStreom in)创建一个BufferedInputStream并保存其参数,即瑜入流 in,以便将来使用。

BufferedInputStream(InputStream in,int size)创建具有指定缓冲区大小的 BufferedInputStreom并保存其参数,即输入流

参数:

InputStream in :字节输入流

我们可以传递FiLeInputstream ,缓冲流会给FiLeInputStreaom增加一个缓冲区,提高FiLeInputStreom的读取效率

int size:指定缓冲流内部缓冲区的大小,不指定默认

 

使用步骤(重点):

1.创建FileInputstream对象,构造方法中绑定要读取的数据源

2.创建BufferedInputStream对象,构造方法中传递FiLeInputStream对象,提高FiLeInputStream对象的读取效率

3.使用BufferedInputStream对象中的方法read,读取文件

4 .释放资源

public class huanchong {
    public static void main(String[] args) throws IOException {
        //1.创建FiLeInputStream对象,构造方法中绑定要读取的数据源
        FileInputStream stream = new FileInputStream("");
        //2.创建BufferedInputStream对象,构造方法中传递FiLeInputStream对象,提高FiLeInputStream对象的读取效率
        BufferedInputStream stream1 = new BufferedInputStream(stream);
        //3.使用Bufferedinputstream对象中的方法read,读取文件
        //int read()从输入流中读取数据的下一个字节。
        /**
         * int len = 0;//记录每次读取到的字节
         * whiLe( ( Len = bis.read( ) )!=-1){
         * system.out.println(Len);
         * }
         */

        //int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中
        byte[] bytes = new byte[1024];//存储每次读取的数据
        int len = 0; //记录每次读取的有效字节个数
        while ((len = stream1.read(bytes)) !=-1){
            System.out.println(new String(bytes,0,len));
        }

        //释放资源
        stream1.close();
    }
}

 

 

 

 

 

 

缓冲流的效率测试_复制文件:

明确:

数据源:c:\\1.jpg

数据的目的地:d :\\1.jpg

文件复制的步骤:

1.创建字节缓冲输入流对象,构造方法中传递字节输入流

2.创建字节缓冲输出流对象,构造方法中传递字节输出流

3.使用字节缓冲输入流对象中的方法read,读取文件

4.使用字节缓冲输出流中的方法write,把读取的数据写入到内部缓冲区中

5.释放资源(会先把缓冲区中的数据,刷新到文件中)

 

文件的大小:780,831字节

一次读写一个字节:32毫秒

使用数组缓冲读取多个字书,写入多个字节:5毫秒

public class xiaolv {
    public static void main(String[] args) throws IOException {
        long s = System.currentTimeMillis();
        //1.创建字节缓冲输入流对象,构造方法中传递字节输入流
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:\\thr\\222.txt"));
        //2.创建字节缓冲输出流对象,构造方法中传递字节输出流    如果有同名文件会覆盖掉他然后什么内容都没有
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:\\zhj\\222.txt"));
        //3.使用字节缓冲输入流对象中的方法read,读取文件
        //一次读取一个字节写入一个字节的方式
        /*int len = 0;
        while((len = bis.read())!=-1){
            bos.write(len);
        }*/

        //使用数组缓冲读取多个字节,写入多个字节
        byte[] bytes = new byte[1024];
        int len = 0;
        while((len = bis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,len));
            bos.write(bytes,0,len);
        }

        bos.close();
        bis.close();

        long e = System.currentTimeMillis();
        System.out.println("复制文件共耗时:"+(e-s)+"毫秒");
    }
}

 

搜索

复制

标签:字节,BufferedInputStream,缓冲,len,read,读取
来源: https://www.cnblogs.com/hungui/p/16473321.html