在java下主要通過file類來對文件進行操作!
一、創建文件
//創建一個文件對象,如:
File f1=new File("E:\\test.txt");
二、文件操作
說實話,在java下讀寫文件的諸如PrintWriter、FileWriter、FileInputStream之類的IO流非常之多,初看之下確實會讓人暈死!!!!!但是,根據自己的需要,選擇合適的就可以了,沒有必要全部掌握。
其實在java下,常用的文件IO流也就FileWriter/FileReader和FileOutputWriter/FileInputReader這兩組。其中,FileWriter/FileReader是FileOutputWriter/FileInputReader的子類,二者的主要區別在於FileWriter/FileReader採用系統默認的編碼方式進行讀寫,不可以自己設置;而FileOutputWriter/FileInputReader可以在構造函數中設置讀寫的編碼方式,所以爲了保險防止出現亂碼,一般用FileOutputWriter/FileInputReader進行文件的讀寫。
FileOutputWriter/FileInputReader是java中非常關鍵的文件IO流,它是字節流-字符流的轉換橋樑。可以用下面這張圖說明一下:
1.寫文件示例:
File out = new File(file);
//構造 OutputStreamWriter 實例,並設置寫入文件的編碼方式
OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(out), Charset.forName("GBK"));
BufferedWriter bw = new BufferedWriter(ow); //引入BufferedWriter進行封裝是爲了提高寫文件的效率
bw.write(); //寫入內容
bw.newLine(); //另起一行寫
bw.flush(); //刷新
bw.close(); //關閉流
值得注意的是,在new FileOutputStream(out)中,默認是覆蓋原內容地寫。如果要追加地寫文件,還需要設置一個參數:
new FileOutputStream(out,ture) //追加寫到文件中
2.讀文件示例:
File out = new File(file);
//構造 InputStreamReader 實例,並設置寫入文件的編碼方式
InputStreamReader ir = new InputStreamReader(new FileInputStream(out), Charset.forName("GBK"));
BufferedReader br = new BufferedReader(ir); //引入BufferedReader進行封裝是爲了提高寫文件的效率
String lineTxt = null;
while((lineTxt = bufferedReader.readLine()) != null)
{
/*
處理
*/
}
br.close(); //關閉讀文件流