昨天用 FileWriter 把學生資料寫進 students.txt。但是程式重新啟動後,如果不讀檔記憶體會是空的,所以要學這個。
FileReader+BufferedReader 可以把檔案內容讀回來,轉換成student object,重新放進StudentManager。
FileReader 基本用法
import java.io.FileReader;
import java.io.IOException;
public class Demo {
public static void main(String[] args) {
try (FileReader fr = new FileReader("students.txt")) {
int c;
while ((c = fr.read()) != -1) {
System.out.print((char)c);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
read() 會一次讀一個字元,回傳 int,讀到 EOF (end-of-file) 時回傳 -1。
缺點:一次讀字元,效率低。
BufferedReader: 可以一行一行讀,比較快也比較方便處理文字。
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Demo {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("students.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line); // 每次讀一行
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
anyways 這是今天的實作: