Apache Common FileUtils readLines 方法调用不明确

Apache Common FileUtils readLines method ambiguous call

我在 Android Studio 中尝试使用 Apache commons IO 第三方 API 时偶然发现了这个问题。

基本上当我尝试调用 FileUtils.readLines() 方法时,有 3 个选项:

第一个选项已经被弃用,这意味着我不应该再使用它所以我只是输入 readLines(file,null) 但是,现在的问题是Android Studio 不知道我使用的是哪个 readLines() 方法签名,因为 readLines(file,null) 对于第二个和第三个方法签名均有效。

下面的截图进一步解释了我的意思:

有谁能教教我这个吗?我如何告诉 Android Studio 我想用于 FileUtils.readLines()?

的特定方法签名

IDE 猜不出你的 null 是什么。不管是String还是Charset。您可以尝试类似的操作:

String encoding=null;
FileUtils.readLines(file, encoding);

但我认为这行不通,因为 readLines 方法需要知道您的文件使用的编码方式。因此,例如,如果您的文件使用 UTF-8,您可以这样写

FileUtils.readLines(file, StandardCharsets.UTF_8);

或者你可以尝试使用默认字符集,看这个: How to Find the Default Charset/Encoding in Java?

正如 Apache 文档所说,不推荐使用的版本 readLines(File file) 使用默认字符集。你可以这样写以获得等价物:

FileUtils.readLines(file, Charset.defaultCharset());