JAVA中的IO流-FileReader類

FileReader類: 用於讀取字符流的一個類

構造方法:

FileReader(File file) 
創建一個新的 FileReader ,給出 File讀取。  

FileReader(FileDescriptor fd) 
創建一個新的 FileReader ,給定 FileDescriptor讀取。  

FileReader(String fileName) 
創建一個新的 FileReader ,給定要讀取的文件的名稱。  

方法:

	.read()
	讀取一個字符

	.read(char[] cbuf)
	讀取一個字符串
	.......
	很多重載的方法
	
	.close()
	關閉流
	
	.....
	還有可以看API

例子:
這裏把異常拋出,不進行捕捉了
demo.txt 文本文件中放着abcde

import java.io.FileReader;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");

        int ch = fr.read(); //讀取一個
        System.out.println(ch); 輸出
    }
}

運行結果: 97


如果要讓它輸出原本的a,則需要進行強制類型轉換

 System.out.println((char)ch); 

運行結果: a


如果我們想要它全部輸出的話,可以用循環

import java.io.FileReader;
        import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");

        int ch= 0;
        while((ch = fr.read()) != -1) {
            System.out.print((char)ch); //輸出
        }
    }
}

運行結果:
在這裏插入圖片描述


利用數組進行存儲再進行讀取
例子:

import java.io.FileReader;
        import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");
		
		char[] ch = new char[3];
		
		int len = 0;
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
    }
}

運行結果:
在這裏插入圖片描述


如果我們多次取值呢?

import java.io.FileReader;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");
		
		char[] ch = new char[3];
		
		int len = 0;
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
    }
}

運行結果:
在這裏插入圖片描述
爲什麼會這樣子呢?
我們第一次的時候數組是空的
於是把abc放進去之後
len = 3
在這裏插入圖片描述


後面繼續讀取 因爲後面已經沒有空間了,所以會重頭開始
於是len = 2
在這裏插入圖片描述


因爲第三次讀取因爲已經到底了
len = -1 告知錯誤
所以還是輸出原來的
在這裏插入圖片描述


所以我們可以重新寫一個輸出
例子:

import java.io.FileReader;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");
		
		char[] ch = new char[3];
		
		int len = 0;
		while((len = fr.read(ch)) != -1) {
			System.out.println(len+":"+new String(ch,0,len));
		}
    }
}

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章