【问题标题】:Remove this use of constructor "Scanner(file)"删除构造函数“Scanner(file)”的这种使用
【发布时间】:2021-04-12 06:02:03
【问题描述】:

如何解决这个声纳问题?

File file = new File("/some directory");
Scanner scanner = new Scanner(file);

移除对构造函数“Scanner(file)”的这种使用

【问题讨论】:

    标签: java sonarqube java.util.scanner sonarqube-scan


    【解决方案1】:

    rule 说:

    不应使用依赖于默认系统编码的类和方法

    使用依赖于默认系统编码的类和方法可以使代码在其“家庭”环境中正常工作。但是,对于使用不同编码方式的客户,该代码可能会以极难诊断的方式出现故障,并且在修复它们时几乎(如果不是完全的话)不可能重现。

    要解决此问题,您应该使用包含Charset 的构造函数。例如,Scanner(File, Charset) 构造函数。你应该指定你想要的字符集。

    File file = new File("/some directory");
    Scanner scanner = new Scanner(file, StandardCharsets.UTF_8); // as an example
    

    【讨论】:

      猜你喜欢
      • 2020-03-30
      • 2020-10-04
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      相关资源
      最近更新 更多