IO流中的Reader讀操作

LJ君發表於2020-10-05
package 練習;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderDemo01 {
    public static void main(String[] args) {
        File file=new File("F:\\java92\\src\\練習\\world");
        FileReader fr=null;
//        方式一  使用節點流進行讀取操作  就是一個一個字元的讀取  read 方法 讀取到空時返回-1;
//        try {
//            fr=new FileReader(file);
//            int data;
//            while ((data = fr.read()) != -1) {
//                System.out.print((char)data);
//            }
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        //方式二:處理流的方式進行讀取,使得讀取速度更快;
        try {
            fr=new FileReader(file);
            char[] ch=new char[2];
            int len;//返回讀取的個數
            while (( len=fr.read(ch))!=-1)
            {
//                for (int i = 0; i < len; i++) {     //不可用i<ch.length  結果會變成“hellowoldl”
//                    System.out.print(ch[i]);
//                }
                //除了for迴圈   string 的構造方法會將char陣列轉換成字串;
                String str=new String(ch,0,len);
                System.out.print(str);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            try {
                fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

相關文章