1

我有多个使用不推荐使用的方法的调用,例如

org.apache.commons.io.FileUtils.readFileToString(File file)

org.apache.commons.io.IOUtils.toString(InputStream input)
org.apache.commons.io.IOUtils.toInputStream(String input)

现在,我确实知道这些方法已被弃用,以及用哪些方法替换它们,例如

readFileToString(final File file, final Charset encoding)

不同之处在于我必须指定一个编码。

现在,因为我的主要目标是在删除旧方法的同时保留行为,即使这意味着保留错误/怪异,我想调用新方法,使其像旧方法一样工作。阅读新方法的 Javadoc 会发现

* @param encoding the encoding to use, {@code null} means platform default

我现在的假设是,如果我将null编码参数作为新方法传递给新方法,它的行为将与旧方法一样。这意味着旧方法始终使用平台默认值。但是有没有办法检查呢?

4

2 回答 2

3

正如预期的那样,它使用了默认编码readFileToString

使用 VM 的默认编码将文件的内容读入字符串。该文件始终处于关闭状态。

IOUtils.toString

使用平台的默认字符编码将byte[] 的内容作为 String 获取。

于 2019-10-15T11:41:09.327 回答
1

就像Apache Common-io 文档说的:

使用 VM 的默认编码将文件的内容读入字符串。该文件始终处于关闭状态。

于 2019-10-15T11:43:36.467 回答