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
---------------
我每一次回头,都感觉自己不够努力,所以我不再回头。
---------------