java基礎-檔案複製,修改後綴名
阿新 • • 發佈:2019-01-07
package file; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; /* * 需求:複製指定目錄下的指定檔案,並修改後綴名。 * 指定的檔案是:.java檔案。 * 指定的字尾名是:.jad * 指定的目錄是:jad * 資料來源:d:\\java\\CopyFolderDemo.java * 目的地:d:\\jad\\CopyFolderDemo.jad * 分析: * A:封裝目錄 * B:獲取該目錄下的java檔案的File陣列 * C:遍歷該File陣列,得到每一個File物件 * D:把該File進行復制 * E:在目的地目錄下改名 */ public class CopyFolderDemo { public static void main(String[] args) throws IOException { // 封裝目錄 File srcFolder = new File("d:\\java"); // 封裝目的地 File destFolder = new File("d:\\jad"); // 如果目的地目錄不存在,就建立 if (!destFolder.exists()) { destFolder.mkdir(); } // 獲取該目錄下的java檔案的File陣列 File[] fileArray = srcFolder.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return new File(dir, name).isFile() && name.endsWith(".java"); } }); // 遍歷該File陣列,得到每一個File物件 for (File file : fileArray) { // System.out.println(file); // 資料來源:d:\java\ // 目的地:d:\\jad\ String name = file.getName(); File newFile = new File(destFolder, name); copyFile(file, newFile); } // 在目的地目錄下改名 File[] destFileArray = destFolder.listFiles(); for (File destFile : destFileArray) { // System.out.println(destFile); // d:\jad\\ // d:\\jad\\ String name =destFile.getName(); String newName = name.replace(".java", ".jad"); File newFile = new File(destFolder,newName); destFile.renameTo(newFile); } System.out.println("OK!"); } private static void copyFile(File file, File newFile) throws IOException { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile)); byte[] bys = new byte[1024]; int len = 0; while ((len = bis.read(bys)) != -1) { bos.write(bys, 0, len); } bos.close(); bis.close(); } }