Java 拷贝文件及目录
2015-08-23 22:58
357 查看
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyFolder { /** * 拷贝文件 * @param sourcefile * @param targetFile * @throws IOException */ public static void copyFile(File sourcefile,File targetFile) throws IOException{ //新建文件输入流并对它进行缓冲 FileInputStream input=new FileInputStream(sourcefile); BufferedInputStream inbuff=new BufferedInputStream(input); //新建文件输出流并对它进行缓冲 FileOutputStream out=new FileOutputStream(targetFile); BufferedOutputStream outbuff=new BufferedOutputStream(out); //缓冲数组 byte[] b=new byte[1024*5]; int len=0; while((len=inbuff.read(b))!=-1){ outbuff.write(b, 0, len); } //刷新此缓冲的输出流 outbuff.flush(); //关闭流 inbuff.close(); outbuff.close(); out.close(); input.close(); } /** * 拷贝文件夹 * @param sourceDir * @param targetDir * @throws IOException */ public static void copyDirectiory(String sourceDir,String targetDir) throws IOException{ File target = new File(targetDir); if(!target.exists()){ //新建目标目录 target.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); } } } public static void main(String[] args){ //源文件夹 String sourceFolder = "D:/test"; //目标文件夹 String targetFolder = "D:/test1"; CopyFolder copy = new CopyFolder(); File f = new File("/"); String path = f.getClass().getResource("/").getPath(); path = path.substring(1,path.length()); try { copy.copyDirectiory(sourceFolder, path+"imgPath"); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- Java递归算法
- Java递归算法
- Java递归算法
- Java如何解决脆弱基类(基类被冻结)问题
- DesignPattern_Java:Abstract Factory Pattern
- Java泛型应用示例
- java新手笔记24 Math/String对象
- 翻转子串(Java)
- Java多线程编程-同步方法
- (2.1.23)java的枚举enum
- Java运算符优先级表
- Struts2学习笔记(一):struts2开发环境配置
- Spring Named Parameters examples in SimpleJdbcTemplate
- Java(TM) platform SE binary占用几乎全部CPU
- Intellij IDEA工具Java web 环境搭建
- JavaSE复习日记 : 实例化对象/构造方法和this关键字
- Spring SimpleJdbcTemplate batchUpdate() example
- Spring SimpleJdbcTemplate Querying examples
- [笔记][Java7并发编程实战手册]3.8 并发任务间的数据交换Exchanger
- java多线程详解(1)-多线程入门