Java 利用缓冲字节流来实现视频、音频、图片的复制粘贴
InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。
OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。
Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。
Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。
package IOStream; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; public class BufferedStreamDemo {
/**
* 利用缓冲字节流来实现视频、音频、图片的复制粘贴
*/
private static final String FilePath1 = "D:/图片文件包/夫人.jpg";// 要复制的文件路径
private static final String FilePath2 = "E:/夫人.jpg"; // 文件目标路径 /**
* 1.使用缓存流拷贝文件
* 2.记录拷贝过程用时
*/
public static long CopyFileByBufferedStream(){
File file1 = new File(FilePath1); // 创建要复制的文件对象
if(!file1.exists()){ // 判断文件路径是否存在
System.out.println("文件不存在!");
return 0;
}
long starTime = System.currentTimeMillis(); // 记录复制文件所需时间 InputStream inStream = null; // 创建字节输入流
BufferedInputStream bInStream = null; // 创建缓冲输入字节流
OutputStream outStream = null; // 创建字节输出流
BufferedOutputStream bOutStream = null; // 创建缓冲字节输出流 try {
inStream = new FileInputStream(FilePath1); // 创建文件输入流,指向路径可以是:FilePath1,也可以是file1
bInStream = new BufferedInputStream(inStream); // 用缓冲输入流装饰文件输入流
outStream = new FileOutputStream(FilePath2); // 创建文件输出流,指向目标路径
bOutStream = new BufferedOutputStream(outStream); // 用缓冲输出流来包装文件输出流 int i = 0;
while((i = bInStream.read()) != -1){
bOutStream.write(i); // 对接流,输出文件
} System.out.println("文件拷贝完成!"); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
bOutStream.close();
bInStream.close(); } catch (IOException e) {
e.printStackTrace();
}
} long endTime = System.currentTimeMillis();
return endTime - starTime;
} public static void main(String[] args) { long time = CopyFileByBufferedStream();
System.out.println("拷贝用时:" + time + "ms");
}
}
Java 利用缓冲字节流来实现视频、音频、图片的复制粘贴的更多相关文章
- 利用FFmpeg玩转Android视频录制与压缩(二)<转>
		转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ... 
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
		接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ... 
- Java Web 中使用ffmpeg实现视频转码、视频截图
		Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html ... 
- H5新特性-视频,音频-Flash-canvas绘图
		json格式 json - > AJAX json:数据格式,通常是以字符串形式表示 对象 {"name":"james","age" ... 
- Java之缓冲流(字节/字符缓冲流)
		概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流: BufferedInputStream , BufferedOutputStrea ... 
- java利用JDK调用并执行js源码
		前言: 不同开发语言之间具有通用性,更具有协作调用的可能.有时候对于一些场景会有调用js的需求,因此下面展示了一个java利用自身JDK调用js函数的demo,供感兴趣的朋友参考. js函数文件 ex ... 
- Java利用Preferences设置个人偏好
		Java利用Preferences设置个人偏好 Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会 ... 
- Java利用POI导入导出Excel中的数据
		首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ... 
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板
		java 利用spring JavaMailSenderImpl发送邮件,支持普通文本.附件.html.velocity模板 博客分类: Java Spring 本文主要介绍利用JavaMailS ... 
随机推荐
- SpringBoot Boot内嵌Tomcat
			Spring Boot: SpringBoot-start-web 里面依赖的环境中 如果是外部的Tomcat 容器,可以通过修改config进行配置 内嵌的呢? 如何定制和修改Servlet容器的相 ... 
- CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 解决方法
			参考:CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 环境 主系统 OS X,虚拟机,Ubuntu 14.04 64bit. 问题描述 ... 
- eclipse中导入maven项目:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.Maven
			org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter) 解决方法为:更新eclipse中的maven插件 1.help ... 
- 关于java中ArrayList的快速失败机制的漏洞——使用迭代器循环时删除倒数第二个元素不会报错
			一.问题描述 话不多说,先上代码: public static void main(String[] args) throws InterruptedException { List<Strin ... 
- HIVE之正则化详解
			有大神写的很好了,我借花献佛,有兴趣,看链接,在此不再赘述.想要学习Hive正则表达式重点应该是正则表达式的表示方式,只有正则表达式使用溜了,hive正则那就是小case. 附参考博文: https: ... 
- poj-2096-期望/dp
			http://poj.org/problem?id=2096 有n种病毒,s个服务器,每天等概率的在某个服务器上发现某一种病毒,问发现所有种类病毒且覆盖所有的服务器的期望天数. 利用全期望公式可以将期 ... 
- UVA-1610 Party Games (构造)
			题目大意:给出一系列字符串,构造出一个字符串大于等于其中的一半,小于另一半. 题目分析:取大小为中间的两个a,b(a<b).实际上就是找出第一个小于b的同时大于等于a的字符串,直接构造即可.要注 ... 
- IOS-更优雅地使用Static Cell
			更优雅地使用Static Cell 在项目开发中,经常会用到static cell来实现一些固定的列表界面(如:个人中心等),在static cell被点击时,如何判断被点击的cell是哪一个,有什么 ... 
- call()与apply()用法
			call()和apply()的作用都是一样的——通过改变函数体内部 this 的指向,借用对象的方法的目的 还是举个栗子吧: function Cat(){ this.food = 'fish'; t ... 
- BZOJ2223 [Coci 2009]PATULJCI
			求区间内个数大于rank的一个数 主席树求一下就好啦! /************************************************************** Problem: ... 
