如何使用java操作記事本

來源:互聯網
上載者:User

使用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("C://tjcyjd.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("F://tjcyjd.txt"))); 
    String data = null; 
    while((data = br.readLine())!=null){ 
      System.out.println(data); 
    } 

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

FileWriter
fw = new FileWriter("F://tjcyjd.txt"); 
    String s = "hello world"; 
    fw.write(s,0,s.length()); 
    fw.flush(); 
    OutputStreamWriter osw = new 
    OutputStreamWriter(new FileOutputStream 
    ("tjcyjd2.txt")); 
    osw.write(s,0,s.length()); 
    osw.flush(); 
    PrintWriter pw = new PrintWriter 
    (new OutputStreamWriter(new FileOutputStream 
    ("tjcyjd3.txt")),true); 
    pw.println(s);

 
  最後不要忘記用完後關閉流!下面把一些代碼貼出來,希望用到的時候能有個參照。

package test;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;public class TestFile{public static void main(String[] args) throws IOException {FileReader fr = new FileReader("F://tjcyjd.txt");// 內容為:Love lives,Love java!愛生活,愛java!int ch = 0;while ((ch = fr.read()) != -1) {System.out.print((char) ch);}InputStreamReader isr = new InputStreamReader(new FileInputStream("F://tjcyjd.txt"));while ((ch = isr.read()) != -1) {System.out.print((char) ch);}BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F://tjcyjd.txt")));String data = null;while ((data = br.readLine()) != null) {System.out.println(data);}FileWriter fw = new FileWriter("F://tjcyjd1.txt");String s = "Love lives, Love java!愛生活,愛java!";fw.write(s, 0, s.length());fw.flush();OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F://tjcyjd2.txt"));osw.write(s, 0, s.length());osw.flush();PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("F://tjcyjd3.txt")), true);pw.println(s);fr.close();isr.close();br.close();fw.close();osw.close();pw.close();}}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.