<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      Java設置文本文件的方法

      [摘要]最初java是不支持對文本文件的處理的,為了彌補這個缺憾而引入了Reader和Writer兩個類,這兩個類都是抽象類,Writer中write(char[] ch,int off,int length),flush()和close()方法為抽象方法,Reader中read(char[] ch,in...
      最初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 language

        import 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();
        }
        }


      日韩精品一区二区三区高清