美文网首页Java开发
BufferedOutputStream 写入文件

BufferedOutputStream 写入文件

作者: _浅墨_ | 来源:发表于2022-11-18 15:13 被阅读0次

    BufferedOutputStream 为输出流提供了一个缓冲区,这样可以确保不是每次读取一个字节,而是每次读取一大块儿内容到缓冲区中,从而大大提高IO速度。这通常要比每次读取单字节要快得多。

    推荐方式:

       //将文件流(InputStream)写入文件
      long size = 0;
      BufferedInputStream in = new     
      BufferedInputStream(input);
      BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(targetFilePath));
         int len = -1;
         byte[] b = new byte[1024];
         while((len = in.read(b)) != -1){
              out.write(b, 0, len);
              size += len;
         }
         in.close();
         out.close();
    

    下面这种方式不行,如果文件较大,这样写会非常耗时。比如 160M 的文件,while 要循环 160 * 1024 * 1024 次....

        data = new byte[input.available()];
        int len = 0;
        fileOutputStream = new FileOutputStream(targetFilePath,true);
        while ((len = input.read(data)) != -1) {
             fileOutputStream.write(data, 0, len);
        }
        System.out.println("下载文件成功");
        log.info("下载文件成功 ossFileId = {} targetFilePath = {}",ossFileId,targetFilePath);
    

    相关文章

      网友评论

        本文标题:BufferedOutputStream 写入文件

        本文链接:https://www.haomeiwen.com/subject/vqzyxdtx.html