国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java文本文件操作方法實例詳解

2019-11-26 15:09:25
字體:
來源:轉載
供稿:網友

本文實例講述了Java文本文件操作方法。分享給大家供大家參考。具體分析如下:

最初Java是不支持對文本文件的處理的,為了彌補這個缺憾而引入了Reader和Writer兩個類,這兩個類都是抽象類,Writer中write(char[] ch,int off,int length),flush()和close()方法為抽象方法,Reader中read(char[] ch,int off,int length)和close()方法是抽象方法。子類應該分別實現他們。

當我們讀寫文本文件的時候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的類是InputStreamReader,它是字節轉換為字符的橋梁。你可以在構造器重指定編碼的方式,如果不指定的話將采用底層操作系統的默認編碼方式,例如GBK等。當使用FileReader讀取文件的時候,

FileReader fr = new FileReader("ming.txt");int ch = 0;while((ch = fr.read())!=-1 ){  System.out.print((char)ch);}

其中read()方法返回的是讀取得下個字符。當然你也可以使用read(char[] ch,int off,int length)這和處理二進制文件的時候類似,不多說了。如果使用InputStreamReader來讀取文件的時候

while((ch = isr.read())!=-1){  System.out.print((char)ch);}

這和FileReader并沒有什么區別,事實上在FileReader中的方法都是從InputStreamReader中繼承過來的。read()方法是比較好費時間的,如果為了提高效率我們可以使用BufferedReader對Reader進行包裝,這樣可以提高讀取得速度,我們可以一行一行的讀取文本,使用readLine()方法。

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")));String data = null;while((data = br.readLine())!=null){  System.out.println(data);}

當你明白了如何用Reader來讀取文本文件的時候那么用Writer寫文件同樣非常簡單。有一點需要注意,當你寫文件的時候,為了提高效率,寫入的數據會先放入緩沖區,然后寫入文件。因此有時候你需要主動調用flush()方法。與上面對應的寫文件的方法為:

FileWriter fw = new FileWriter("hello.txt");String s = "hello world";fw.write(s,0,s.length());fw.flush();OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt"));osw.write(s,0,s.length());osw.flush();PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true);pw.println(s);

不要忘記用完后關閉流!下面是個小例子,幫助新手理解。其實有的時候Java的IO系統是需要我們多記記的,不然哪天就生疏了。

//hello world i like Java languageimport Java.io.*;public class TestFile2{  public static void main(String[] args)   throws IOException  {  FileReader fr = new FileReader("ming.txt");  char[] buffer = new char[1024];  int ch = 0;  while((ch = fr.read())!=-1 )  {  System.out.print((char)ch);  }  InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt"));  while((ch = isr.read())!=-1)  {  System.out.print((char)ch);  }  BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")));  String data = null;  while((data = br.readLine())!=null)  {  System.out.println(data);  }  FileWriter fw = new FileWriter("hello.txt");  String s = "hello world";  fw.write(s,0,s.length());  fw.flush();  OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt"));  osw.write(s,0,s.length());  osw.flush();  PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true);  pw.println(s);  fr.close();  isr.close();  br.close();  fw.close();  osw.close();  pw.close();  }}

希望本文所述對大家的java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 光泽县| 贞丰县| 博乐市| 横山县| 禄丰县| 崇文区| 广水市| 兴宁市| 昌图县| 金溪县| 隆德县| 临邑县| 隆德县| 红河县| 海南省| 成都市| 昌平区| 乐至县| 临海市| 竹北市| 汕头市| 屯留县| 台中市| 崇义县| 沾化县| 清涧县| 综艺| 安泽县| 通渭县| 吴江市| 兴仁县| 洛南县| 吉木萨尔县| 中超| 班玛县| 南雄市| 精河县| 永吉县| 弥勒县| 寿阳县| 寿宁县|