import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; public class IOTest { public static void main(String[] args) { copyFile("F:/工作用/apache-tomcat-6.0.20/RUNNING.txt", "D:/test.txt"); copyDirectiory("F:/工作用/apache-tomcat-6.0.20", "D:/test/apache"); } /* * 拷贝文件到另一个路径 * @source 原文件 * @newpath 新文件 */ public static void copyFile(String source, String newpath){ FileInputStream in=null; FileOutputStream out=null; try { in = new FileInputStream(source);//in 流源文件 File file=new File(newpath);//创建file对象 if(!file.exists()){ file.createNewFile(); } out =new FileOutputStream(file);//形成输出流 int len; byte b[]=new byte[1024];//缓冲区 while ((len=in.read(b))!=-1) { for (int i = 0; i < len; i++) { out.write(b[i]); } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { in.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /* * 拷贝文件夹下所有文件 * @source 原路径 * @newpath 新路径 */ public static void copyDirectiory(String source,String newpath) { new File(newpath).mkdirs();//创建目录 //获取源文件夹当前下的文件或目录 File files[]=new File(source).listFiles(); for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { // 复制文件 copyFile(String.valueOf(files[i]), newpath + files[i].getName()); } if (files[i].isDirectory()) { // 复制目录 String sourceDir = source + File.separator + files[i].getName(); String targetDir = newpath + File.separator + files[i].getName(); copyDirectiory(sourceDir, targetDir); } } } }
?当然也可以用 这个简便方法 拷贝文件夹下所有文件及文件夹:
用apache的commons-io这个jar包下的FileUtils类 FileUtils.copyDirectory(java.io.File srcDir, java.io.File destDir);
JAVA IO 拷贝文件 ,以及拷贝文件夹下所有文件及文件夹
原文:http://taoge-tony.iteye.com/blog/2166512