標籤:使用 編碼方式 指定 get ace sys 效率 buffer pack
當我們讀寫文字檔的時候,採用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的類是InputStreamReader, 它是位元組轉換為字元的橋樑。你可以在構造器重指定編碼的方式,如果不指定的話將採用底層作業系統的預設編碼方式,例如GBK等。使用FileReader讀取檔案:
/*//這是FileReader讀取檔案 FileReader fr= new FileReader("src/file/ming.txt"); int ch=0; while((ch=fr.read())!=-1) { System.out.println((char)ch); }*/
其中read()方法返回的是讀取得下個字元。當然你也可以使用read(char[] ch,int off,int length)這和處理二進位檔案的時候類似。
事實上在FileReader中的方法都是從InputStreamReader中繼承過來的。read()方法是比較好費時間的,如果為了提高效率我們可以使用BufferedReader對Reader進行封裝,這樣可以提高讀取得速度,我們可以一行一行的讀取文本,使用readLine()方法。
/* //這是inputStreamReader,它是位元組轉換為字元的橋樑 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("src/file/ming.txt"))); String data = null; while((data = br.readLine())!=null) { System.out.println(data);
}*/
綜合執行個體:
package file;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;public class fileTest { public static void main(String []args) { /*//這是FileReader讀取檔案 FileReader fr= new FileReader("src/file/ming.txt"); int ch=0; while((ch=fr.read())!=-1) { System.out.println((char)ch); }*/ /* //這是inputStreamReader,它是位元組轉換為字元的橋樑 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("src/file/ming.txt"))); String data = null; while((data = br.readLine())!=null) { System.out.println(data); }*/ File file = new File("src/file/ming.txt"); try{ file.createNewFile(); }catch(IOException e) { e.printStackTrace(); } //向檔案寫入內容(輸出資料流) String str="小明喜歡學習,he likes palying football."; byte bt[]=new byte[1024]; bt=str.getBytes(); try{ FileOutputStream in=new FileOutputStream(file); try{ in.write(bt,0,bt.length); in.close(); }catch(IOException e) { e.printStackTrace(); } }catch(FileNotFoundException e) { e.printStackTrace(); } try{ //讀取檔案內容(輸入資料流) FileInputStream out =new FileInputStream(file); InputStreamReader isr=new InputStreamReader(out); BufferedReader br=new BufferedReader(isr); String data=null; while((data=br.readLine())!=null) { System.out.println(data); } }catch(Exception e) { e.printStackTrace(); } }}
Java的檔案讀寫操作