package com.demo;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class CopyFileDemo { public static void main(String[] args) { long beginTime = System.currentTimeMillis();
copyFileBuffer();
long endTime = System.currentTimeMillis();
System.out.println("Buffered拷贝所花的时间:"+(endTime-beginTime)+"毫秒"); long beginTime1 = System.currentTimeMillis();
copyFile();
long endTime1 = System.currentTimeMillis();
System.out.println("FileIn/Out拷贝所花的时间:"+(endTime1-beginTime1)+"毫秒");
} public static void copyFileBuffer(){
// File file= new File("G:/MP4视频");
// file.mkdir();
try {
BufferedInputStream bin = new BufferedInputStream(new FileInputStream("G:/install/ISO/XLJS_GHOST_XP_SP3_FT_2.0.iso"));
BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream("H:/TEST/1.iso"));
byte[] bt = new byte[8192];
int n=0;
while ((n=bin.read(bt))!=-1) {
bout.write(bt, 0, n); }
bout.flush();
bin.close();
bout.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void copyFile(){
try {
FileInputStream fin = new FileInputStream("G:/install/ISO/XLJS_GHOST_XP_SP3_FT_2.0.iso");
FileOutputStream fout=new FileOutputStream("H:/TEST/2.iso"); byte[] by = new byte[8192];
int len = 0;
while ((len=fin.read(by))!=-1) {
fout.write(by, 0, len); }
fout.flush();
fout.close();
fin.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }

测试结果:文件大小:700M,用Buffered拷贝有时候反而比不用缓存拷贝还慢

有时候还是使用缓存快点,但是不是特别明显

使用拷贝文件测试(BufferedInputStream,FileInputStream)的更多相关文章

  1. Java 复制大文件方式(nio2 FileChannel 拷贝文件能力测试)

    目前为止,我们已经学习了很多 Java 拷贝文件的方式,除了 FileChannel 提供的方法外,还包括使用 Files.copy() 或使用字节数组的缓冲/非缓冲流.那个才是最好的选择呢?这个问题 ...

  2. Java Io 之拷贝文件性能比较

    前面我们共讨论了拷贝文件有三种方式: 1. 第一种,一个字节一个字节的进行拷贝文件操作. 2. 第二种,使用字节数据批量的进行拷贝文件操作. 3. 第三种,使用带缓冲输入输出流来拷贝文件. 那么哪一种 ...

  3. java——io、字节流缓冲区拷贝文件、字节缓冲流

    使用try catch finally关闭文件流: 写入文件: import java.io.*; public class exp{ public static void main(String[] ...

  4. 使用缓冲流和byte数组,拷贝文件

    package com.itcast.demo05.Buffered;import java.io.*;/** * @author newcityman * @date 2019/7/28 - 17: ...

  5. 关于 MAXScript 拷贝文件夹及内容到其他位置

    之前用 hiddenDOSCommand 本机测试通过,但是换其他电脑有时会不能用... fn xcopy oldfile newfile = ( newfilepath = newfile + &q ...

  6. cmd for 循环拷贝文件

    这几天忙活部署测试环境, 中途需要拷贝 文件, 直接贴code吧: ::/定义原路径 set source=seventrat_test_backend,seventrat_test_frontend ...

  7. [Java] 通过文件流拷贝文件

    package test.stream; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  8. java中的拷贝文件FileChannel

    以前用Java拷贝文件,只知道写byte数组循环拷贝,今天知道了可以用FileChannel进行拷贝,上代码: 下边是传统的byte数组拷贝方法 </pre><pre name=&q ...

  9. Swift 拷贝文件夹,实现文件夹内容整体复制

    我们知道,在沙盒内,iOS要拷贝一个文件,可以使用 fileManager.copyItem(atPath: fullPath, toPath: fulltoPath) 方法简单实现,不过当我们要拷贝 ...

随机推荐

  1. SQL语句(四)可视化创建和修改表

    可视化创建修改表 数据库(teaching)->表->新建表 数据库(teaching)->表->(右键)设计->CHECK约束->添加---->标识(名称) ...

  2. 改变placeholder的字体颜色大小

    input::-webkit-input-placeholder { /* WebKit browsers */ font-size:14px; color: #333; } input::-moz- ...

  3. centos7 cannot find a valid baseurl for repo

    出现这个问题是因为yum在安装包的过程中,虽然已经联网,但是没法解析远程包管理库对应的域名,所以我们只需要在网络配置中添加上DNS对应的ip地址即可. 操作 1.打开网络配置文件 vi /etc/sy ...

  4. SmartUpload文件上传组件的使用教程

    在项目中使用SmartUpload组件可以进行文件的上传和下载操作 使用步骤 1.导入jar包,进行build path操作 2.编写文件上传页面,代码如下 <form action=" ...

  5. mysql 语句 GROUP_CONCAT

    select * from blog_log;+----+---------------------+-------+--------+| id | time | level | info |+--- ...

  6. python Twisted安装报错

    系统 mac pro 错误信息: IOError: [Errno 63] File name too long: '/var/folders/72/byjy11cs0dj_z3rjtxnj_nn000 ...

  7. mysql 原理 ~ 事务隔离机制

    简介: 事务隔离知多少内容  一 基础知识  1 事务特性 ACID   A 原子性 C 一致性 I 隔离性 D 持久性  2 并行事务出现的问题    1 脏读 读取了其他事务未提交的数据      ...

  8. Android Studio导入系统 jar包,编译时优先于查找系统SDK

    https://www.cnblogs.com/bluestorm/p/6744140.html

  9. 重新学习Servlet

    package javax.servlet; import java.io.IOException; public interface Servlet { public void init(Servl ...

  10. win10-Anaconda2-Theano-cuda7.5-VS2013

    两天的辗转反侧,终于灵光一现找到了错误. 首先,我在win10下配置好了gpu和cudnn版本的caffe.但是因为win平台的限制,caffe用的不够舒服.因为之前用过一阵子theano,虽然很慢, ...