缓冲流的效率测试_复制文件和BufferedWriter_字符缓冲输出流

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

单个读取字符的时间

    private static void show06() throws IOException {
        long l = System.currentTimeMillis();

        //创建字节缓冲输入流对象,构造方法中传递字节输入流
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\3.jpg"));
        //创建字节缓冲输出流对象,构造方法中传递字节输出流
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\a\\3.jpg"));
        //使用字节缓冲输入流对象中的方法read,读取文件
        int len = 0;
        while ((len=bis.read())!=-1){
            bos.write(len);
        }
        bis.close();
        bos.close();

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

 

 使用数组进行复制的时间

    private static void show06() throws IOException {
        long l = System.currentTimeMillis();

        //创建字节缓冲输入流对象,构造方法中传递字节输入流
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\3.jpg"));
        //创建字节缓冲输出流对象,构造方法中传递字节输出流
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\a\\3.jpg"));
        //使用数组缓冲读取多个字节,写入多个字节
        byte[] bytes = new byte[1024];
        int len = 0;
        while ((len = bis.read(bytes))!=-1){
            bos.write(bytes,0,len);
        }

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

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

BufferedWriter_字符缓冲输出流

java.io.BufferedWriter extends Writer

BufferedWriter:字符缓冲输出流

构造方法:

  BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流。

  BufferedWriter(Writer out, int sz) 创建一个使用给定大小输出缓冲区的新缓冲字符输出流。

  参数:

    Writer out:字符输出流

      可以传递FileWriter,缓冲流会给FileWriter增加一个缓冲区,提高FileWriter的写入效率

    int sz:指定缓冲区的大小,不写默认大小

特有的成员方法:

  void newLine() 写入一个行分隔符。会根据不同的操作系统,获取不同的行分隔符

    private static void show07() throws IOException {
        //创建字符缓冲输出流对象,构造方法中传递字符输出流
        BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\a9.txt"));
        //调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中
        for (int i = 0; i <10; i++) {
            bw.write("张三");
            bw.newLine();
        }
        //调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据,刷新到文件中
        bw.flush();
        bw.close();
    }

 

 

posted @ 2022-07-14 13:47  魔光领域  阅读(18)  评论(0编辑  收藏  举报