使用文件流与使用缓冲流完成文件的复制操作性能对比,文件流 FileInputStream FileOutputStream 缓冲流: BufferedInputStream BufferedOutputStream
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的更多相关文章
- 点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。
本文修改来源:http://www.cnblogs.com/zmgdpg/archive/2005/03/31/129758.html 效果: 数据库: 思路: 首先保存word到数据库:获取上传文件 ...
- 字节缓冲流 ( BufferedInputStream / BufferedOutputStream)
package com.sxt.reader; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; imp ...
- C++重载流运算符,将存储结构体的vector直接写入文件
我们知道,当vector很大的时候,如果使用循环的方式将其中的元素写入文件将非常费时,因此有没有办法将vector一次性写入文件呢? 采用流运算符重载的方法可以做到,不仅基本类型的vector可以一次 ...
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- javaSE中的输入输出流---一个读取流,相应多个输出流。并且生成的碎片文件都有有序的编号
<span style="font-size:18px;">package com.io.other.split; import java.io.File; impor ...
- java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流
package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.Fi ...
- 节点流(文件流) FileInputStream & FileOutputStream & FileReader & FileWriter
节点流(文件流) FileInputStream(字节流)处理视频类的 FileOutputStream(字节流) FileReader(字符流)处理文本文件 ...
- IO流的练习2 —— 复制单级文件夹中的文件
需求:把C:\Users\Administrator\Desktop\记录\测试里面的所有文件复制到 C:\Users\Administrator\Desktop\新建文件夹\copy文件夹中 分析: ...
- Java基础知识强化之IO流笔记48:IO流练习之 复制单级文件夹案例
1. 复制单级文件夹 数据源:e:\\demo 目的地:e:\\test 分析: A:封装目录 B:获取该目录下的所有文本的File数组 C:遍历该File数组,得到每一个File对象 ...
随机推荐
- 【CV现状-3.0】"目标"是什么
#磨染的初心--计算机视觉的现状 [这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣.可以随意传播,随意喷.所涉及的内容过多,将按如下内容划分章节.已经完成的会逐渐加上链接.] 缘起 三维感 ...
- MPV源码探究:源码结构和调用层次
源码结构和调用层次 源码结构 从 Github 上拉取最新的源码,目录结构大致如下: H:\MPV ├─.github ├─audio │ ├─decode │ ├─filter │ └─out ├─ ...
- 爬取b站互动视频信息
首先分辨视频是不是互动视频可以看 https://api.bilibili.com/x/player.so?id=cid:1&aid=89017 这个api返回的xml中的 <inter ...
- 本地的个人web网站上线的全过程,供大家参考(PHP,简易的LAMP环境搭建)
一 : 你需要准备的东西 1.本地能访问的网站,最好是改过host文件和apache的httpd-vhosts.conf,配置过本地域名的那种(减少传到线上出现的问题,文件路径不对呀啥的) 2.一个云 ...
- ruby读写文件的方法
读文件 #Ruby 读取文件 #方法一 file = File.open("/Users/Desktop/demo.txt","r") while line = ...
- 【每天一题】LeetCode 0028. 字符串匹配
开源地址:https://github.com/jiauzhang/algorithms 题目描述 * https://leetcode-cn.com/problems/implement-strst ...
- css知识笔记:水平垂直居中(别只看,请实操!!!)
css实现元素的水平垂直居中. (尝试采用5W2H方法说明): 别只看,请实操!!! What: 1.这篇文档主要描述元素水平方向居中的几种最常见和最实用的几种方式,并说明优缺点. 2.写这篇文章的目 ...
- 编译原理之LL(1)文法的判断,递归下降分析程序
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不 ...
- python检查字典元素是否存在类似php中isset()方法
PHP中isset()方法来检查数组元素是否存在,在Python中无对应函数,在Python中一般可以通过异常来处理数组元素不存在的情况,而无须事先检查 Python的编程理念是“包容错误”而不是“严 ...
- 并发编程~~~协程~~~greenlet模块, gevent模块
一 协程 1. 协程: 单线程下的并发,又称微线程,纤程.协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的. 并发真正的核心: 切换并且保持状态. 开启协程并发的执行,自己的程序把控着C ...