標籤:
IO流:
FileOutputStream
FileInputStream
位元組流複製檔案
二進位流用位元組流輸入輸出
public void newLine():根據系統平台寫入行分隔字元
public String readLine():一次讀取一行資料
代碼操作【練習】
1 package cn.itcast01; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.FilenameFilter; 9 import java.io.IOException;10 11 12 /*13 * 需求:將指定目錄下指定類型檔案複製到指定目錄14 * 15 * 思路:16 * A:封裝來源目錄17 * B:遍曆來源目錄,擷取每一個符合指定類型的檔案18 * C:更名複製:19 * a:先更名,後複製;20 * b:複製後統一更名21 * 22 * 提升:多級目錄下的複製23 */24 public class FileCopyDemo2 {25 public static void main(String[] args) throws IOException {26 //A:封裝來源目錄27 File file = new File("D:\\java\\JavaCode\\day1");28 29 //B:遍曆來源目錄,擷取每一個符合指定類型的檔案30 File[] files = file.listFiles(new FilenameFilter(){31 @Override32 public boolean accept(File dir, String name) { 33 return new File(dir,name).isFile() && name.endsWith(".java");34 } 35 });36 37 //建立目錄38 File destFile = new File("d:\\jad");39 if(!destFile.exists()){40 boolean flag = destFile.mkdir();41 System.out.println("在沒有目標目錄時,建立目錄:"+flag);42 }43 44 //C:更名複製:複製後統一命名45 for(File fileTemp:files){46 String name = fileTemp.getName(); //擷取原有指定檔案名稱字47 String newName = name.replace(".java", ".jad"); //需要建立目標目錄48 File newFile = new File(destFile,newName); //建立目標目錄49 //複製內容50 BufferedReader br = new BufferedReader(new FileReader(fileTemp));51 BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));52 53 char[] chs = new char[1024];54 int len = 0;55 while((len = br.read(chs))!=-1){56 bw.write(chs,0,len);57 bw.flush();58 }59 //關閉資源60 bw.close();61 br.close();62 }63 }64 }
1 package cn.itcast03; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.IOException; 9 10 /**11 * 遍曆複製指定目錄12 * @author itcast13 *14 */15 public class FileCopyDemo {16 public static void main(String[] args) throws IOException {17 //封裝File對象18 File srcFile = new File("D:\\java\\JavaCode\\day2");19 File destFile = new File("D:\\test");20 if(!destFile.exists()){21 destFile.mkdirs();22 }23 //擷取指定目錄下的File對象數組24 File[] arrayFiles = srcFile.listFiles();25 //遍曆,並進行判斷26 char[] chs = new char[1024];27 int len = 0;28 for(File arrayFile:arrayFiles){29 if(arrayFile.isFile()){30 String name = arrayFile.getName(); // 擷取原有指定檔案名稱字31 File finalFile = new File(destFile, name); // 建立目標目錄32 //建立複寫輸入輸出資料流33 BufferedReader br = new BufferedReader(new FileReader(arrayFile));34 BufferedWriter bw = new BufferedWriter(new FileWriter(finalFile));35 36 while((len = br.read(chs))!=-1){37 bw.write(chs,0,len);38 bw.flush();39 }40 41 //關閉資源42 bw.close();43 br.close();44 }45 }46 }47 }
Java基礎--第二十一天