1. 程式人生 > >Java IO流之字元流

Java IO流之字元流

1.字元輸出流 Writer(只能寫入文字檔案)

1.1FileWriter類(writer的子類)

構造方法:

public class FileWriterDemo {

public static void main(String[] args) throws IOException {
        //演示FileWriter 用於操作檔案的便捷類。
        FileWriter fw = new FileWriter("d:\\text\\fw.txt");
        fw.write("你好謝謝再見");//這些文字都要先編碼。都寫入到了流的緩衝區中。
        fw.flush();  //如果不重新整理,資料不會到達目的地
     //寫一個字元陣列
     char[] c = {'a','b','c','d','e'};
      fw.write(c);
      fw.flush();
     //寫陣列一部分
      fw.write(c,2,2);
      fw.flush();
fw.close(); } }
//flush():將流中的緩衝區緩衝的資料重新整理到目的地中,重新整理後,流還可以繼續使用。

//重新整理記憶體,將記憶體中的資料立刻寫出。
//在最後工作完成時呼叫close()也可以重新整理記憶體

//flush() 與 close() 區別在於 close()會關閉流,flush()一般用於處理中時需要將資料立即寫出。

2.字元輸入流Reader

構造方法

2.1FileReader

讀取檔案

package habin.file;
import java.io.FileReader;
import java.io.IOException;


public class FileDemo {
    public static void main(String[] args) throws IOException {    
        
        FileReader fr = new FileReader("d:\\a.txt"); int len = 0; while((len=fr.read())!=-1){ System.out.print((char)len); } fr.close(); } }

3.檔案複製:

package habin.file;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileDemo { public static void main(String[] args) throws IOException { File file1 = new File("d:\\a.txt"); File file2 = new File("f:\\b.txt"); FileReader fr = new FileReader(file1); FileWriter fw = new FileWriter(file2); char[] c = new char[2014]; int len = 0; while((len=fr.read(c))!=-1){ fw.write(c,0,len); fw.flush(); } fw.close(); fr.close(); } }

上述程式碼實現將d盤下a.txt檔案中的資料複製到了f盤下的b.txt中