首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Java中兑现复制文件或文件夹

2012-06-28 
Java中实现复制文件或文件夹拷贝一个文件的算法比较简单,当然,可以对它进行优化,比如使用缓冲流,提高读写

Java中实现复制文件或文件夹

拷贝一个文件的算法比较简单,当然,可以对它进行优化,比如使用缓冲流,提高读写数据的效率等。但是在复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法。

view plaincopyto clipboardprint?
    import?java.io.*;????public?class?CopyDirectory?{??????//?源文件夹???????static?String?url1?=?"f:/photos";??????//?目标文件夹???????static?String?url2?=?"d:/tempPhotos";??????public?static?void?main(String?args[])?throws?IOException?{??????????//?创建目标文件夹???????????(new?File(url2)).mkdirs();??????????//?获取源文件夹当前下的文件或目录???????????File[]?file?=?(new?File(url1)).listFiles();??????????for?(int?i?=?0;?i?<?file.length;?i++)?{??????????????if?(file[i].isFile())?{??????????????????//?复制文件???????????????????copyFile(file[i],new?File(url2+file[i].getName()));??????????????}??????????????if?(file[i].isDirectory())?{??????????????????//?复制目录???????????????????String?sourceDir=url1+File.separator+file[i].getName();??????????????????String?targetDir=url2+File.separator+file[i].getName();??????????????????copyDirectiory(sourceDir,?targetDir);??????????????}??????????}??????}??//?复制文件???public?static?void?copyFile(File?sourceFile,File?targetFile)???throws?IOException{??????????//?新建文件输入流并对它进行缓冲???????????FileInputStream?input?=?new?FileInputStream(sourceFile);??????????BufferedInputStream?inBuff=new?BufferedInputStream(input);????????????//?新建文件输出流并对它进行缓冲???????????FileOutputStream?output?=?new?FileOutputStream(targetFile);??????????BufferedOutputStream?outBuff=new?BufferedOutputStream(output);????????????????????//?缓冲数组???????????byte[]?b?=?new?byte[1024?*?5];??????????int?len;??????????while?((len?=inBuff.read(b))?!=?-1)?{??????????????outBuff.write(b,?0,?len);??????????}??????????//?刷新此缓冲的输出流???????????outBuff.flush();????????????????????//关闭流???????????inBuff.close();??????????outBuff.close();??????????output.close();??????????input.close();??????}??????//?复制文件夹???????public?static?void?copyDirectiory(String?sourceDir,?String?targetDir)??????????????throws?IOException?{??????????//?新建目标目录???????????(new?File(targetDir)).mkdirs();??????????//?获取源文件夹当前下的文件或目录???????????File[]?file?=?(new?File(sourceDir)).listFiles();??????????for?(int?i?=?0;?i?<?file.length;?i++)?{??????????????if?(file[i].isFile())?{??????????????????//?源文件???????????????????File?sourceFile=file[i];??????????????????//?目标文件??????????????????File?targetFile=new???File(new?File(targetDir).getAbsolutePath()??+File.separator+file[i].getName());??????????????????copyFile(sourceFile,targetFile);??????????????}??????????????if?(file[i].isDirectory())?{??????????????????//?准备复制的源文件夹???????????????????String?dir1=sourceDir?+?"/"?+?file[i].getName();??????????????????//?准备复制的目标文件夹???????????????????String?dir2=targetDir?+?"/"+?file[i].getName();??????????????????copyDirectiory(dir1,?dir2);??????????????}??????????}??????}??}?

热点排行