参考自:http://blog.csdn.net/Dream_JavaWorld/article/details/3682075
拷贝一个文件的算法比较简单,当然,可以对它进行优化,比如使用缓冲流,提高读写数据的效率等。
但是在复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法。
-
packageorg.bruce.convert.util;
-
-
importjava.io.*;
-
-
-
-
-
publicclassCopyUtil{
-
publicstaticboolean_choice=true;
-
-
-
publicstaticvoidCopyFile(FilesourceFile,FiletargetFile)
-
throwsIOException{
-
-
FileInputStreaminput=newFileInputStream(sourceFile);
-
BufferedInputStreaminBuff=newBufferedInputStream(input);
-
-
-
FileOutputStreamoutput=newFileOutputStream(targetFile);
-
BufferedOutputStreamoutBuff=newBufferedOutputStream(output);
-
-
-
byte[]b=newbyte[1024*5];
-
intlen;
-
while((len=inBuff.read(b))!=-1){
-
outBuff.write(b,0,len);
-
}
-
-
outBuff.flush();
-
-
-
inBuff.close();
-
outBuff.close();
-
output.close();
-
input.close();
-
}
-
-
-
publicstaticvoidCopyDirectory(StringsourceDir,StringtargetDir)
-
throwsIOException{
-
-
(newFile(targetDir)).mkdirs();
-
-
File[]file=(newFile(sourceDir)).listFiles();
-
for(inti=0;i<file.length;i++){
-
if(file[i].isFile()){
-
-
FilesourceFile=file[i];
-
-
FiletargetFile=newFile(
-
newFile(targetDir).getAbsolutePath()+File.separator
-
+file[i].getName());
-
CopyFile(sourceFile,targetFile);
-
}
-
if(file[i].isDirectory()){
-
-
Stringdir1=sourceDir+File.separator+file[i].getName();
-
-
Stringdir2=targetDir+File.separator+file[i].getName();
-
CopyDirectory(dir1,dir2);
-
}
-
}
-
}
-
-
-
-
-
-
-
-
publicstaticbooleanPowerCopy(Stringsource,Stringdest){
-
try{
-
Fileinput=newFile(source);
-
if(input.isFile()&&!_choice){
-
-
(newFile(dest)).mkdirs();
-
Fileoutput=newFile(dest+File.separator+input.getName());
-
CopyFile(input,output);
-
}elseif(input.isFile()&&_choice){
-
CopyFile(newFile(source),newFile(dest));
-
}else{
-
-
CopyDirectory(source,dest);
-
}
-
returntrue;
-
}catch(IOExceptione){
-
-
e.printStackTrace();
-
BY.Err("exceptionoccuredinCopyUtil.powerCopy!");
-
returnfalse;
-
}
-
}
-
-
-
-
-
publicstaticvoidmain(Stringargs[])throwsIOException{
-
-
Stringurl1="/Users/user/Desktop/480*320.png";
-
Stringurl2="/Users/user/Desktop/481*320.png";
-
-
-
-
-
PowerCopy(url1,url2);
-
}
-
}
分享到:
相关推荐
同目录下放doc.xml做配置文件,子节点有IN_FILE_PATH,OUT_FILE_PATH
Orika工具类包含常用转化
可以把一个文件(如:txt)复制到指定目录,并重新命名,程序简单易读,方便上手使用。
Java CopyUtil工具类,可以进行对象的深copy,比如:对象里面包含对象,对象里面包含Map,List,Set...等复杂类型的属性都可以copy,copy后的对象与原有对象没有联系,即改变原有对象内容,不会改变copy后的对象里面的...
base.util 基于JDK得基础工具类 用于基于JDK得基础工具 任何人如果想加入可以联系QQ:893351947 ...对象复制工具:CopyUtil 反射: 1.基本类型强转工具:ClassParserUtil 时间: 1.时间工具:TimeUtil