I/O--(上)複製資料夾&遞迴&改名
阿新 • • 發佈:2018-12-27
-
隨機獲取文字中的名稱,一行一個名稱。
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Random; /* * 要求:文字檔案中儲存了幾個名稱,寫一個程式實現隨機獲取一個名稱。 */ public class GetName { public static void main(String[] args) throws IOException { // 把文字檔案中的資料儲存到集合中 BufferedReader br = new BufferedReader(new FileReader("Name.txt")); ArrayList<String> array = new ArrayList<String>(); String line = null; while ((line = br.readLine()) != null) { array.add(line); } br.close(); Random r = new Random(); int index = r.nextInt(array.size()); String name = array.get(index); System.out.println("名稱為:" + name); } }
-
複製單級資料夾
/* 要求:複製單極資料夾 資料來源:E:\\Java 目的地:E:\\JavaTest */ 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 CopyFolderDemo { public static void main(String[] args) throws IOException { File srcFolder = new File("E:\\Java"); File destFolder = new File("E:\\JavaTest"); if (!destFolder.exists()) { destFolder.mkdir(); } File[] fileArray = srcFolder.listFiles(); for (File file : fileArray) { String name = file.getName(); File newFile = new File(destFolder, name); copyFile(file, newFile); } } 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(); } }
-
複製單級資料夾&改名
/*for example*/ /* 要求:複製指定目錄下的指定資料型別檔案,並修改後綴名。 指定的檔案是:.java檔案。 指定的字尾名是:.txt 指定的目錄是:TestCc 資料來源:E:\\Java\\*.java 目的地:E:\\Jad\\*.jad */ 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; public class CopyFolderDemo { public static void main(String[] args) throws IOException { /*File(String pathname) 通過將給定的路徑名字串轉換為抽象路徑名來建立新的File例項。 */ File srcFolder = new File("E:\\Java"); File destFolder = new File("E:\\Jad"); if (!destFolder.exists()) { destFolder.mkdir(); } 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) { /* File(File parent, String child) 從父抽象路徑名和子路徑名字串建立新的 File例項。 File(String pathname) 通過將給定的路徑名字串轉換為抽象路徑名來建立新的 File例項。 File(String parent, String child) 從父路徑名字串和子路徑名字串建立新的 File例項。 */ String name = file.getName(); File newFile = new File(destFolder, name); copyFile(file, newFile); } //改名遍歷過程. File[] destFileArray = destFolder.listFiles(); for (File destFile : destFileArray) { String name =destFile.getName(); //DataTypeDemo.java String newName = name.replace(".java", ".jad");//DataTypeDemo.jad File newFile = new File(destFolder,newName); destFile.renameTo(newFile); } System.out.println("Over!"); } /*檔案複製函式*/ 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(); } }
-
複製多級資料夾
/* *要求:複製多極資料夾. 資料來源:E:\\JavaTest 目的地:E:\\ */ 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 CopyFoldersDemo { public static void main(String[] args) throws IOException { File srcFile = new File("E:\\JavaTest"); File destFile = new File("E:\\"); copyFolder(srcFile, destFile); } private static void copyFolder(File srcFile, File destFile) throws IOException { if (srcFile.isDirectory()) { File newFolder = new File(destFile, srcFile.getName()); newFolder.mkdir(); File[] fileArray = srcFile.listFiles(); for (File file : fileArray) { copyFolder(file, newFolder); } } else { File newFile = new File(destFile, srcFile.getName()); copyFile(srcFile, newFile); } } private static void copyFile(File srcFile, File newFile) throws IOException { BufferedInputStream bis = new BufferedInputStream(new FileInputStream( srcFile)); 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(); } }