1. 程式人生 > >JAVA-IO流將A檔案內容Copy到B檔案中

JAVA-IO流將A檔案內容Copy到B檔案中

程式設計思路:

/*
 * 將A檔案中的內容複製到B檔案中
 * 
 * 複製原理:
 * 其實就是將A檔案中檔案資料儲存到B檔案中
 * 步驟:
 * 1.在自己想要儲存的地方建立一個B檔案,用於儲存A檔案中的資料
 * 2.定義讀取流和A檔案關聯
 * 3.通過不斷的讀寫完成資料儲存
 * 4.關閉流資源
 */

一、方法一:從A檔案中讀一個字元,就往B檔案中寫一個字元

//方法一:從A檔案中讀一個字元,就往B檔案中寫一個字元
	public static void copy_1() throws IOException{
		//建立目的地
		FileWriter fw= new FileWriter("DemoCope1.txt");
		
		FileReader fr = new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java");
		
		int num = 0;
		while ((num = fr.read()) !=-1) {
			fw.write(num);
		}
		fw.close();
		fr.close();
	}
二、方法二:先把A檔案中的內容全部讀出來後,在往B檔案中寫
//方法二:先把A檔案中的內容全部讀出來後,在往B檔案中寫
	public static void Copy_2(){
		FileWriter fw = null;
		FileReader fr = null;
		try {
			//先建立目的地檔案
			fw = new FileWriter("CopyTextContent.txt");
			fr= new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java");
			
			char [] reader = new char[1024];
			int num = 0;
			while ((num = fr.read(reader)) !=-1) {
				fw.write(reader,0,num);
			}
		} catch (IOException e) {
			throw new RuntimeException("讀寫錯誤");
		}finally{
			if (fw !=null) {
				try {
					fw.close(); //這裡使用try-catch是因為防止建立失敗(路徑錯誤之類),當建立失敗的時候這裡就會出現NullPointerException
				} catch (Exception e2) {
				}
			}
			if (fr !=null) {
				try {
					fr.close(); //同上
				} catch (Exception e2) {
				}
			}
		}
		
	}

注意:在寫專案的時候一般使用方法二,還是就是一般不要使用throws來丟擲異常,使用方法二的比較好   微笑

三、方法三:使用快取區的方法進行

//使用快取區複製一個.java檔案
	public static void BufferedDemo(){
		BufferedWriter bfWriter = null;
		BufferedReader bfReader =null;
		try {
			bfWriter = new BufferedWriter(new FileWriter("Demo.txt"));
			bfReader = new BufferedReader(new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java"));
			
			String line = null;
			while ((line = bfReader.readLine())!=null) {
				bfWriter.write(line);
				bfWriter.newLine(); //因為每次是讀取一行內容,所以顯示一行後就得換行
				bfWriter.flush(); //重新整理內容
			}
		} catch (IOException e) {
			throw new RuntimeException("讀寫錯誤!");
		}finally{
			if (bfWriter !=null) {
				try {
					bfWriter.close();
				} catch (Exception e2) {
					throw new RuntimeException("寫入關閉失敗!");
				}
			}
			
			if (bfReader !=null) {
				try {
					bfReader.close();
				} catch (Exception e2) {
					throw new RuntimeException("讀取關閉失敗!");
				}
			}
		}
		
	}