Java IO流之字元流
阿新 • • 發佈:2018-12-05
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中