首先我们需要了解什么是字符流。字符流是按字符为单位进行操作的输入/输出流,字符流和字节流的区别在于,字节流操作的是原始的字节数据,而字符流要将原始数据转化成字符再进行操作。使用字符流输入/输出的优势是能够正确地处理 Unicode 字符,而字节流则不能。这就是为什么我们要使用字符流进行文件读写。
下面就是 Java 基础教程之字符流文件读写的攻略:
1. 字符流的分类
Java 中的字符流主要分为两类:
- Reader / Writer:以字符为单位的输入/输出流
- InputStreamReader / OutputStreamWriter:将字节流转化为字符流的桥梁
其中 Reader 和 Writer 是抽象类,我们可以使用 FileReader 和 FileWriter 来进行文件读写操作。
2. 使用 FileReader 和 FileWriter 读写文件
在 Java 中,我们可以使用 FileReader 和 FileWriter 来进行文件读写,下面是一个简单的示例:
// 读取文件
try (FileReader reader = new FileReader("input.txt")) {
int data = reader.read();
while (data != -1) {
System.out.println((char) data);
data = reader.read();
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入文件
try (FileWriter writer = new FileWriter("output.txt")) {
writer.write("Hello World!");
} catch (IOException e) {
e.printStackTrace();
}
在上面的示例中,我们使用 FileReader 来读取文件,并使用一个 while 循环来不断读取文件中的字符。在写入文件时,我们使用 FileWriter 来打开一个文件进行写入操作。
3. 使用 BufferedReader 和 BufferedWriter 优化文件读写
为了提高文件读写的效率,我们可以使用 BufferedReader 和 BufferedWriter 来优化文件读写,下面是一个示例:
// 读取文件
try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入文件
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
writer.write("Hello World!");
} catch (IOException e) {
e.printStackTrace();
}
在上面的示例中,我们使用 BufferedReader 和 BufferedWriter 来进行优化,在读取文件时,我们使用了一个 while 循环和 readLine 方法来逐行读取文件。在写入文件时,我们使用 BufferedWriter 来写入数据。
这就是 Java 基础教程之字符流文件读写的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础教程之字符流文件读写 - Python技术站