杰瑞科技汇

Java如何读取文件内容转为String?

Java 读取文件为 String 的几种方法

在 Java 中,有几种常见的方法可以将文件内容读取为 String,以下是几种主要实现方式:

使用 Java 8 的 Files.readString() (最简单)

Java 8 引入了 Files.readString() 方法,这是最简洁的方式:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ReadFileToString {
    public static void main(String[] args) {
        try {
            String content = Files.readString(Paths.get("path/to/your/file.txt"));
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 Files.readAllLines() 和 String.join()

如果文件很大,可以使用 readAllLines() 然后连接:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;
public class ReadFileToString {
    public static void main(String[] args) {
        try {
            List<String> lines = Files.readAllLines(Paths.get("path/to/your/file.txt"));
            String content = String.join("\n", lines);
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 BufferedReader (传统方式)

适用于所有 Java 版本:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileToString {
    public static void main(String[] args) {
        StringBuilder content = new StringBuilder();
        try (BufferedReader reader = new BufferedReader(new FileReader("path/to/your/file.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                content.append(line).append("\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(content.toString());
    }
}

使用 Scanner

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFileToString {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(new File("path/to/your/file.txt"));
            StringBuilder content = new StringBuilder();
            while (scanner.hasNextLine()) {
                content.append(scanner.nextLine()).append("\n");
            }
            scanner.close();
            System.out.println(content.toString());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

使用 Apache Commons IO (第三方库)

如果你已经在使用 Apache Commons IO,可以使用 FileUtils

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class ReadFileToString {
    public static void main(String[] args) {
        try {
            String content = FileUtils.readFileToString(new File("path/to/your/file.txt"), StandardCharsets.UTF_8);
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  1. 文件路径:确保路径正确,可以使用绝对路径或相对路径
  2. 字符编码:对于非 ASCII 字符,建议指定编码(如 UTF-8)
  3. 异常处理:文件操作可能抛出 IOException,需要适当处理
  4. 大文件:对于大文件,建议使用逐行读取的方式,避免内存问题

选择哪种方法取决于你的 Java 版本、项目需求和个人偏好,Java 8+ 推荐使用 Files.readString(),它最简洁且高效。

分享:
扫描分享到社交APP
上一篇
下一篇