Java---实现文件拷贝

直接上代码:

package com.zjw.file;

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;
/**
 * 文件拷贝
 * @author Administrator
 *
 */
public class CopyFileTest
{
	public static void main(String[] args)
	{
		long startTime = System.currentTimeMillis();//为了看复制文件的耗时
		File souFile = new File("e:/死侍2.rmvb");//准备的源文件
		File tarFile = new File("e:/死侍2_copy.rmvb");//要拷贝到的文件
		BufferedInputStream bis = null ;//写在外面是为了方便后面的close
		BufferedOutputStream bos = null ;
		try
		{
			FileInputStream fis = new FileInputStream(souFile);//这是字节输入流,用来读文件
			bis = new BufferedInputStream(fis);//这是读的缓冲
			FileOutputStream fos = new FileOutputStream(tarFile);//这是字节输出流,用来写文件
			bos = new BufferedOutputStream(fos);//写文件的缓冲
			
			byte[] tempFile = new byte[1024*1024]; //每次读的大小
			int length = 0 ;
			while((length = bis.read(tempFile)) != -1 )//对读返回的整数进行判断,-1表示结束
			{
				bos.write(tempFile, 0, length); //把读到的文件拷贝过去
			}
			
			bos.flush(); //最后别忘了把里面的东西都放进去
			
		} catch (FileNotFoundException e)
		{
			e.printStackTrace();
		} catch (IOException e)
		{
			e.printStackTrace();
		}finally
		{
			try
			{
				if(bis != null)
				{
					bis.close();//读结束了
					bis = null ;	
				}
			} catch (IOException e)
			{
				e.printStackTrace();
			}
			try
			{
				if(bos != null)
				{
					bos.close();//写也结束了
					bos = null ;	
				}
			} catch (IOException e)
			{
				e.printStackTrace();
			}
		}
		long endTime = System.currentTimeMillis();//结束时的时间
		System.out.println("耗时:" + (endTime - startTime));
	}
}

结果:

耗时:3209

 

posted @ 2018-07-15 22:29  雨中遐想  阅读(4)  评论(0编辑  收藏  举报  来源