readAllLines() 方法用于从文件中读取所有行内容,并将其作为 List<String> 返回。
readAllLines() 方法有两个重载版本:
public static List<String> readAllLines(Path path) throws IOException public static List<String> readAllLines(Path path, Charset cs) throws IOException
第一个版本使用默认字符集(UTF-8)读取文件,第二个版本允许指定字符集。
参数说明
Path path
Path filePath = Paths.get("example.txt");
Charset cs(可选参数)
Charset charset = StandardCharsets.UTF_8;
返回值
异常处理
readAllLines() 方法可能抛出以下异常:
1、IOException - 如果发生 I/O 错误(如文件不存在)
2、SecurityException - 如果没有足够的权限访问文件
建议在使用时进行异常处理:
实例
使用示例
示例 1:基本用法
示例 2:指定字符集
注意事项
1、文件大小:此方法会一次性读取整个文件到内存中,不适合处理非常大的文件(如超过几百MB的文件)
2、字符编码:确保使用正确的字符集,否则可能导致乱码
3、行结束符:不同操作系统使用不同的行结束符(Windows 使用 \r\n,Unix/Linux 使用 \n),但 readAllLines() 会正确处理这些差异
4、性能考虑:对于大文件,考虑使用 BufferedReader 和 lines() 方法进行流式处理
替代方案
如果需要处理大文件,可以考虑以下替代方法:
这种方法使用流式处理,不会一次性加载整个文件到内存中。
总结
Files.readAllLines() 是一个简单易用的方法,适合读取小型文本文件。它提供了便捷的方式来获取文件的所有行内容,但在处理大文件时需要注意内存消耗问题。根据实际需求选择合适的文件读取方式,可以大大提高程序的效率和稳定性。