Apache Common FileUtils readLines 方法调用不明确
Apache Common FileUtils readLines method ambiguous call
我在 Android Studio 中尝试使用 Apache commons IO 第三方 API 时偶然发现了这个问题。
基本上当我尝试调用 FileUtils.readLines() 方法时,有 3 个选项:
- readLines(文件文件) >>>> 弃用
- readLines(文件文件,字符串编码)
- readLines(文件文件,字符集编码)
第一个选项已经被弃用,这意味着我不应该再使用它所以我只是输入 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());
我在 Android Studio 中尝试使用 Apache commons IO 第三方 API 时偶然发现了这个问题。
基本上当我尝试调用 FileUtils.readLines() 方法时,有 3 个选项:
- readLines(文件文件) >>>> 弃用
- readLines(文件文件,字符串编码)
- readLines(文件文件,字符集编码)
第一个选项已经被弃用,这意味着我不应该再使用它所以我只是输入 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());