当尝试在Android Studio中使用Apache Commons IO第三方API时,我偶然发现了这个问题。
基本上,当我尝试调用 FileUtils.readLines()方法时,有3个选项:
第一个选项已被弃用,这意味着我不应该再使用它,所以我只输入 readLines(file,null)。但是,现在的问题是Android Studio没有不知道我在使用哪个readLines()方法签名,因为 readLines(file,null)对第二个和第三个方法签名均有效。
下面的屏幕截图进一步解释了我的意思:
有人可以启发我吗?我如何告诉Android Studio我要用于 FileUtils.readLines()的特定方法签名?
答案 0 :(得分:1)
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(文件文件)使用了默认字符集。您可以编写此代码以获取等效内容:
FileUtils.readLines(file, Charset.defaultCharset());