第 2 节 - 文件输入输出

此处将详细介绍 Java 中的文件输入输出相关知识。

1. Java 文件输入输出概述

在 Java 中,文件输入输出(I/O)操作主要通过 java.io 包和 java.nio 包来实现。java.io 包提供了传统的流(Stream)操作,而 java.nio 包提供了更高效的非阻塞 I/O 操作。

2. 使用 java.io 进行文件读取

2.1 使用 FileReader 读取文本文件

FileReader 是用于读取字符文件的便捷类,以下是一个简单的示例:


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

public class FileReadExample {
    public static void main(String[] args) {
        try (FileReader reader = new FileReader("example.txt")) {
            int character;
            while ((character = reader.read()) != -1) {
                System.out.print((char) character);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
        

上述代码使用 `FileReader` 逐字符读取文件内容,直到文件结束(返回 -1)。

2.2 使用 BufferedReader 提高读取效率

为了提高读取效率,可以使用 `BufferedReader` 包装 `FileReader`:


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

public class BufferedReaderExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
        

`BufferedReader` 可以一次读取一行文本,减少了 I/O 操作次数,提高了读取效率。

3. 使用 java.io 进行文件写入

3.1 使用 FileWriter 写入文本文件

FileWriter 是用于写入字符文件的便捷类,以下是一个简单的示例:


import java.io.FileWriter;
import java.io.IOException;

public class FileWriteExample {
    public static void main(String[] args) {
        try (FileWriter writer = new FileWriter("output.txt")) {
            writer.write("Hello, Java File I/O!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
        

上述代码使用 `FileWriter` 将字符串写入文件。

3.2 使用 BufferedWriter 提高写入效率

为了提高写入效率,可以使用 `BufferedWriter` 包装 `FileWriter`:


import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedWriterExample {
    public static void main(String[] args) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write("Hello, Java File I/O!");
            writer.newLine();
            writer.write("This is a new line.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
        

`BufferedWriter` 可以缓冲数据,减少了 I/O 操作次数,提高了写入效率。

返回目录