小能豆

如何在java中读一个纯文本文件?

javascript

如何在java中读一个纯文本文件?


阅读 13

收藏
2024-12-30

共1个答案

小能豆

在 Java 中读取纯文本文件的常见方式是使用 BufferedReaderFiles 类。以下是两种常见的方法:


方法 1: 使用 BufferedReader

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

public class ReadFileExample {
    public static void main(String[] args) {
        String filePath = "example.txt"; // 文件路径

        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line); // 打印每行内容
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

优点
- 逐行读取文件,适合大文件。
- 自动关闭资源(使用 try-with-resources)。


方法 2: 使用 Files

从 Java 7 开始,java.nio.file.Files 提供了更简单的方法来读取文件。

读取所有行到 List

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;

public class ReadFileExample {
    public static void main(String[] args) {
        String filePath = "example.txt"; // 文件路径

        try {
            List<String> lines = Files.readAllLines(Paths.get(filePath));
            for (String line : lines) {
                System.out.println(line); // 打印每行内容
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

读取整个文件为 String

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;

public class ReadFileExample {
    public static void main(String[] args) {
        String filePath = "example.txt"; // 文件路径

        try {
            String content = new String(Files.readAllBytes(Paths.get(filePath)));
            System.out.println(content); // 打印文件内容
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

优点
- 代码简洁,适合较小文件。


方法 3: 使用 Scanner

Scanner 可以用来读取文件,并允许按分隔符处理文件内容。

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class ReadFileExample {
    public static void main(String[] args) {
        String filePath = "example.txt"; // 文件路径

        try (Scanner scanner = new Scanner(new File(filePath))) {
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line); // 打印每行内容
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

哪种方法适合你?

  • 大文件:使用 BufferedReader,逐行读取内存占用更小。
  • 小文件:使用 Files.readAllLines()Files.readAllBytes() 简单快捷。
  • 自定义分隔符:使用 Scanner

根据你的具体需求选择适合的方式即可。

2024-12-30