java 文件复制操作
本案例采用第三方 jar 包完成,commons-io-2.5.jar,
这个 jar 对文件操作非常方便,大家可以尝试使用一下。
这里贴一个简单的 demo 供大家使用
import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; public class MyFileUtils { public static void main(String[] args) throws IOException { String srcPath = "F:/copyFile/src"; String destPath = "F:/copyFile/dest123"; copyFile(srcPath, destPath); // copyDirectory(srcPath, destPath); // readFileToString(srcPath); } // 创建文件夹 public static void makeDir(String destPath) { File newFilePath = new File(destPath); if (!newFilePath.exists()) { newFilePath.mkdirs(); } } // 复制文件夹及其内容 public static void copyDirectory(String srcPath, String destPath) throws IOException { File file = new File(srcPath); makeDir(destPath); File destFile = new File(destPath); FileUtils.copyDirectory(file, destFile); } // 复制文件(应用场景:复制的同时更改文件名称) public static void copyFile(String srcPath, String destPath) throws IOException { File src = new File(srcPath); makeDir(destPath); File[] srcFiles = src.listFiles(); if (srcFiles.length > 0) { for (File file : srcFiles) { String filename = file.getName(); if (file.isDirectory()) { copyFile(file.getAbsolutePath(), destPath); } if (filename.endsWith("html")) { int index = filename.indexOf("."); String newFileName = filename.substring(0, index) + "复制" + filename.substring(index); File destFile = new File(destPath + "/" + newFileName); FileUtils.copyFile(file, destFile); } } } } // 把文件 内容转成字符串 public static void readFileToString(String srcPath) throws IOException { File src = new File(srcPath); File[] srcFiles = src.listFiles(); if (srcFiles.length > 0) { for (File file : srcFiles) { String filename = file.getName(); if (file.isDirectory()) { readFileToString(file.getAbsolutePath()); } if (filename.endsWith("html")) { String str = FileUtils.readFileToString(file, "utf-8"); System.out.println(str); } } } } }
简单说明一下,
复制文件,包含文件夹 用到 FileUtils.copyDirectory(file, destFile);
复制单个文件 FileUtils.copyFile(file, destFile);
把文件内容读取为字符串 FileUtils.readFileToString(file, "utf-8");