讀寫檔案

Java 的輸入/輸出與串流

Alex Liu

Software Development Engineer

轉型(Casting)

  • 基本型別之間的轉換

  • 擴大轉型:小型自動轉為大型

    • byte -> short -> char -> int -> long -> float -> double
// 擴大轉型:自動發生
byte myByte = 8;
int myInt = myByte;
  • 縮小轉型:手動,從大型轉為小型
// 縮小轉型:需手動
double myDouble = 3.14;
int myInt = (int) myDouble; // 注意 (int)
Java 的輸入/輸出與串流

讀檔常見轉型說明

  • int 轉為 charchar data = (char) 123;
// 字元 'a' 的 Unicode 值
int data = 97;
// 直接以 `int` 格式列印資料
System.out.print(data);
// 將 `int` 轉為 `char` 後列印
System.out.print((char)data);
97
a
1 https://www.ascii-code.com/
Java 的輸入/輸出與串流

使用 FileReader 讀取檔案

  • 匯入 FileReader 類別以啟用讀檔功能
import java.io.FileReader;
  • 讀取檔案,逐字元列印,最後關閉檔案
FileReader fr = new FileReader("example.txt");
int data = fr.read();
// 逐字元讀取並列印
while (data != -1) {
    System.out.print((char) data);
    data = fr.read();
}
fr.close(); // 關閉檔案以釋放資源
Java 的輸入/輸出與串流

用 BufferedReader 高效讀取

  • BufferedReader - import java.io.BufferedReader;
    • 逐行讀取文字檔
    • 大型檔案更有效率
// 建立 BufferedReader 物件
BufferedReader br = new BufferedReader(new FileReader("example.txt"));
String line;
// 使用 .readLine() 逐行讀取
while ((line = br.readLine())!= null){
  System.out.println(line);
}
br.close();
Java 的輸入/輸出與串流

使用 FileWriter 寫入資料

  • FileWriter
    • 預設會「覆寫」既有內容,請小心避免資料遺失!
  • 匯入 FileWriter
import java.io.FileWriter;


// 建立新的 `FileWriter` 物件 FileWriter fw = new FileWriter("example.txt"); // 使用 .write() 寫入檔案 fw.write("Overwriting the file."); fw.close()
Java 的輸入/輸出與串流

使用 FileWriter 附加資料

  • FileWriter
    • 設為 append 模式可附加寫入,不覆寫原有內容

$$

// 以附加模式初始化 `FileWriter`
FileWriter fw = new FileWriter("example.txt", true);
// 將資料附加到檔案
fw.write("Appending data.");
fw.close()
Java 的輸入/輸出與串流

用 BufferedWriter 高效寫入

  • BufferedWriter - import java.io.BufferedWriter;
    • 以較大區塊寫入文字,效率更高
    • 減少寫入次數
// 建立 BufferedWriter 物件
BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"));
bw.write("Writing data");

// 使用 .newLine() 加入換行
bw.newLine(); 
bw.close();
Java 的輸入/輸出與串流

一起來練習吧!

Java 的輸入/輸出與串流

Preparing Video For Download...