删除构造函数“扫描仪(文件)”的这种使用
如何解决这个声纳问题?
File file = new File("/some directory");
Scanner scanner = new Scanner(file);
删除构造函数“扫描仪(文件)”的这种使用
回答
该规则说:
不应使用依赖于默认系统编码的类和方法
使用依赖于默认系统编码的类和方法可能会导致代码在其“家庭”环境中正常工作。但是对于使用不同编码方式的客户来说,该代码可能会损坏,这些方式极难诊断,并且在修复它们时几乎不可能(如果不是完全的话)重现。
要解决此问题,您应该使用包含Charset. 例如,Scanner(File, Charset)构造函数。您应该指定所需的字符集。
File file = new File("/some directory");
Scanner scanner = new Scanner(file, StandardCharsets.UTF_8); // as an example