1. 程式人生 > >java-IO操作——使用帶有緩衝的字元流讀寫資料

java-IO操作——使用帶有緩衝的字元流讀寫資料

使用BufferedReader和PrintWriter實現檔案拷貝

package Test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import
java.io.PrintWriter; import java.io.UnsupportedEncodingException; public class RWByBufferedCharStream { public static void main(String[] args) { try { FileInputStream fis=new FileInputStream("test.txt"); InputStreamReader isr=new InputStreamReader(fis,"UTF-8"); FileOutputStream fos=new
FileOutputStream("test_new.txt"); OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8"); BufferedReader br=new BufferedReader(isr); // BufferedWriter bw=new BufferedWriter(osw); //為了保留換行符我們使用PrintWriter,PrintWriter和BufferedWriter非常相似 PrintWriter pw=new
PrintWriter(osw,true); String input; while((input=br.readLine())!=null){ // bw.write(input); pw.println(input); } // bw.close(); //在把輸出流關掉之前使用flush()將當前的所有緩衝區的資料強制輸出,保證資料一定是完整的 //但是使用PrintWriter的時候,可以使用一個布林型別的引數,把他指定為true, //這樣在呼叫println()和printf的時候,當前緩衝區的內容就會被強制輸出 //但是使用Buffer的時候就沒有這個,在流關閉之前一定要呼叫flush()方法把緩衝區的內容牆紙刷出,以免丟失 // pw.flush(); pw.close(); br.close(); isr.close(); fis.close(); osw.close(); fos.close(); System.out.println("done"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }