读写文件

Java 中的输入/输出与流

Alex Liu

Software Development Engineer

类型转换

  • 基本数据类型之间的转换

  • 扩大转换(widening)- 小类型自动转大类型

    • byte -> short -> char -> int -> long -> float -> double
// 扩大转换 - 自动发生
byte myByte = 8;
int myInt = myByte;
  • 缩小转换(narrowing)- 手动,大类型转小类型
// 缩小转换 - 需要手动
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 中的输入/输出与流

Passons à la pratique !

Java 中的输入/输出与流

Preparing Video For Download...