字节流复制

package copy;


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


import javax.management.RuntimeErrorException;




public class CopyByte {
public static void main(String[] args) {
long start=System.currentTimeMillis();
//FileStreamByteCopy(); //共消耗382毫秒
//FileStreamCopy(); //共消耗265929毫秒
BufferedStreamByteCopy(); //共消耗210毫秒
//BufferedStreamCopy(); //共消耗1348毫秒
long end=System.currentTimeMillis();
System.out.println("复制成功,共消耗"+(end-start)+"毫秒");
}
//缓存区字节数组复制
//共消耗210毫秒
public static void BufferedStreamByteCopy() {
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try {
bis=new BufferedInputStream(new FileInputStream("d:\\2.zip"));
bos=new BufferedOutputStream(new FileOutputStream("h:\\2.zip"));
byte[] bytes=new byte[1024];
int len=0;
while ((len=bis.read(bytes))!=-1) {
bos.write(bytes,0,len);
}

} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException("复制失败");
}finally{
try {
if (bos!=null) {
bos.close();
}
} catch (Exception e2) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}finally{
try {
if (bis!=null) {
bis.close();
}
} catch (Exception e3) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}
}
}
}
//缓存区字节复制
//共消耗1348毫秒
public static void BufferedStreamCopy() {
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try {
bis=new BufferedInputStream(new FileInputStream("d:\\1.avi"));
bos=new BufferedOutputStream(new FileOutputStream("e:\\4.avi"));
int len=0;
while ((len=bis.read())!=-1) {
bos.write(len);
}

} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException("复制失败");
}finally{
try {
if (bos!=null) {
bos.close();
}
} catch (Exception e2) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}finally{
try {
if (bis!=null) {
bis.close();
}
} catch (Exception e3) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}
}
}
}
//字节流数组复制
//共消耗382毫秒
public static void FileStreamByteCopy() {
FileInputStream fis = null;
FileOutputStream fos = null;

try{
fis = new FileInputStream("d:\\1.avi");
fos = new FileOutputStream("e:\\1.avi");
//定义字节数组,长度1024整数倍
byte[] bytes = new byte[1024];
//定义变量,保存read方法返回值
int len = 0 ;
//开始循环读取,读取一个字节数组,写一个字节数,0,有效个数
while((len = fis.read(bytes))!=-1){
fos.write(bytes, 0, len);
}

}catch(IOException ex){
throw new RuntimeException("文件复制失败");
}finally{
try{
if(fos!=null)
fos.close();
}catch(IOException ex){
throw new RuntimeException("关闭资源失败");
}finally{
try{
if(fis!=null)
fis.close();
}catch(IOException ex){
throw new RuntimeException("关闭资源失败");
}
}
}
}
//字节流复制 
//共消耗265929毫秒
public static void FileStreamCopy() {
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream("D:\\1.avi");
fos=new FileOutputStream("e:\\2.avi");
int len=0;
while ((len=fis.read())!=-1) {
fos.write(len);
}
} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException("复制失败");
}finally{
try {
if (fos!=null) {
fos.close();
}
} catch (Exception e2) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}finally{
try {
if (fis!=null) {
fis.close();
}
} catch (Exception e3) {
// TODO: handle exception
throw new RuntimeException("资源释放失败");
}
}

}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值