package seday06;

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

/**
* @author xingsir
* 使用文件流完成文件的复制操作
*
* 文件流:
* java.io.FileInputStream;
* java.io.FileOutputStream;
*/
public class CopyDemo {

public static void main(String[] args) throws IOException{

FileInputStream fis=new FileInputStream("testApp.rar");
FileOutputStream fos= new FileOutputStream("testApp_cp.rar");
//1024byte =1kb ,1kb*10=10kb
byte[] data=new byte[1024*10];

int len=-1;
long start = System.currentTimeMillis();//获取开始时间
//循环
while ((len=fis.read(data))!=-1) {//当每次读取字节不等于-1,表示都有数据
fos.write(data);//写
}
System.out.println("复制完成");
long end = System.currentTimeMillis();//获取结束时间
System.out.println("复制完成,耗时:"+(end-start)+"ms");//打印
fis.close();
fos.close();

}

}

//=========================================================================

package seday06;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
* @author xingsir
* 使用缓冲流完成文件复制
*
* 缓冲流:
* java.io.BufferedInputStream
* java.io.BufferedOutputStream
* 它们是一组高级流,将它们连接上以后可以提高读写效率。这样一来无论我们使用单字节读写还是块读写,都可以保证读写效率。
*/
public class CopyDemo2 {

public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("testApp.rar");
FileOutputStream fos= new FileOutputStream("testApp_cp.rar");

BufferedInputStream bis= new BufferedInputStream(fis);//缓冲流
BufferedOutputStream bos=new BufferedOutputStream(fos);//缓冲流

//1024byte =1kb ,1kb*10=10kb
byte[] data=new byte[1024*10];

int len=-1;
long start = System.currentTimeMillis();//获取开始时间
//循环,使用缓冲流读取
while ((len=bis.read(data))!=-1) {//当每次读取字节不等于-1,表示都有数据
bos.write(data);//使用缓冲流写
}
System.out.println("复制完成");
long end = System.currentTimeMillis();//获取结束时间
System.out.println("复制完成,耗时:"+(end-start)+"ms");
fis.close();
fos.close();
}

}

使用文件流与使用缓冲流完成文件的复制操作性能对比,文件流 FileInputStream FileOutputStream 缓冲流: BufferedInputStream BufferedOutputStream的更多相关文章

  1. 点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。

    本文修改来源:http://www.cnblogs.com/zmgdpg/archive/2005/03/31/129758.html 效果: 数据库: 思路: 首先保存word到数据库:获取上传文件 ...

  2. 字节缓冲流 ( BufferedInputStream / BufferedOutputStream)

    package com.sxt.reader; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; imp ...

  3. C++重载流运算符,将存储结构体的vector直接写入文件

    我们知道,当vector很大的时候,如果使用循环的方式将其中的元素写入文件将非常费时,因此有没有办法将vector一次性写入文件呢? 采用流运算符重载的方法可以做到,不仅基本类型的vector可以一次 ...

  4. javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  5. javaSE中的输入输出流---一个读取流,相应多个输出流。并且生成的碎片文件都有有序的编号

    <span style="font-size:18px;">package com.io.other.split; import java.io.File; impor ...

  6. java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流

    package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.Fi ...

  7. 节点流(文件流) FileInputStream & FileOutputStream & FileReader & FileWriter

    节点流(文件流) FileInputStream(字节流)处理视频类的                   FileOutputStream(字节流) FileReader(字符流)处理文本文件    ...

  8. IO流的练习2 —— 复制单级文件夹中的文件

    需求:把C:\Users\Administrator\Desktop\记录\测试里面的所有文件复制到 C:\Users\Administrator\Desktop\新建文件夹\copy文件夹中 分析: ...

  9. Java基础知识强化之IO流笔记48:IO流练习之 复制单级文件夹案例

    1. 复制单级文件夹     数据源:e:\\demo     目的地:e:\\test 分析: A:封装目录 B:获取该目录下的所有文本的File数组 C:遍历该File数组,得到每一个File对象 ...

随机推荐

  1. Java基础接口和抽象类区别(二)

    抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则 ...

  2. 《Dotnet9》系列-开源C# WPF控件库1《MaterialDesignInXAML》强力推荐

    时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...

  3. Bootstrap模板-Amaretti.2.6.2

    密罐地址: 点我下载

  4. java嵌套接口

    java嵌套接口 package object; class A { //嵌套在类中的接口,可以被private,protected,default和public四种权限修饰 interface B ...

  5. cuckoo沙箱技术分析全景图

    从事信息安全技术行业的小伙伴们都知道沙箱技术(有些也称沙盒),用来判断一个程序或者文件是否是恶意的病毒.木马.漏洞攻击exp或其他恶意软件.其原理简单来说就是提供了一个虚拟的环境,把分析目标放到这个虚 ...

  6. 下载Abook 高等教育出版社网站资料

    一.背景 又快到了期末复习周,这个学期学了一门操作系统,老师没有给课本习题的答案,说是配套网站上有,我看了一下,确实有,是高等教育出版社的数字课程网站Abookl http://abook.hep.c ...

  7. git项目创建及在idea工具中使用

    1.安装git管理工具 2.在自己github账号上创建一个项目仓库,比如我创建的是renrenView 网页翻译如下: 参数解析如下: 3.本地项目同步到远程仓库步骤 在本地初始化git项目 git ...

  8. 获取开发版sha1和开发版sha1

    注:前提是你已经安装好jdk和android-sdk,并且将两者的环境变量已经设置完毕,我这里是jdk8 获取开发版sha1(也称作测试版) 1.打开命令行 cd .android 2.输入keyto ...

  9. Often Misused:Spring Remote Service 经常被误用:Spring远程服务

  10. Python 和 JS 有什么相似?

    Python 是一门运用很广泛的语言,自动化脚本.爬虫,甚至在深度学习领域也都有 Python 的身影.作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 Python (比如默认参数.解构赋值. ...