在 Java 中,有多种方式可以读取文件,每种方式都有其适用的场景和优缺点。以下是一些常见的文件读取方式以及它们的详细步骤流程,包括使用第三方库的情况:
这是最基本的文件读写方式,适用于小型文件。不需要额外的依赖。
import java.io.*;
public class FileReadWriteExample {
    public static void main(String[] args) {
        try {
            // 读取文件
            FileInputStream inputStream = new FileInputStream("input.txt");
            int data;
            while ((data = inputStream.read()) != -1) {
                System.out.print((char) data);
            }
            inputStream.close();
            // 写入文件
            FileOutputStream outputStream = new FileOutputStream("output.txt");
            String text = "Hello, World!";
            outputStream.write(text.getBytes());
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
这种方式适用于文本文件的读写,它可以提高性能,逐行读取或写入文本。
import java.io.*;
public class BufferedReaderWriterExample {
    public static void main(String[] args) {
        try {
            // 读取文件
            BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            reader.close();
            // 写入文件
            BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
            String text = "Hello, World!";
            writer.write(text);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Java NIO 提供了更高效的文件操作方式,适用于大型文件和网络通信。不需要额外的依赖。
import java.io.IOException;
import java.nio.file.*;
import java.util.List;
public class JavaNIOExample {
    public static void main(String[] args) {
        try {
            // 读取文件
            List<String> lines = Files.readAllLines(Paths.get("input.txt"));
            for (String line : lines) {
                System.out.println(line);
            }
            // 写入文件
            String text = "Hello, World!";
            Files.write(Paths.get("output.txt"), text.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Apache Commons IO 提供了更多的文件操作功能,如复制、移动、递归操作等。需要添加以下 Maven 或 Gradle 依赖:
Maven 依赖坐标:
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>
Gradle 依赖坐标:
implementation group: 'org.apache.commons', name: 'commons-io', version: '2.11.0'
示例代码:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class CommonsIOExample {
    public static void main(String[] args) {
        try {
            // 读取文件
            String content = FileUtils.readFileToString(new File("input.txt"), "UTF-8");
            System.out.println(content);
            // 写入文件
            FileUtils.writeStringToFile(new File("output.txt"), "Hello, World!", "UTF-8");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
这些是常见的文件读取方式,你可以根据你的需求选择最适合的方法。在使用第三方库时,请确保在项目的构建工具中添加正确的依赖。