gpt4 book ai didi

findbugs - 在输出流中找到 'Reliance on default encoding'

转载 作者:行者123 更新时间:2023-12-04 23:24:55 26 4
gpt4 key购买 nike

我们如何修复 Reliance on default encoding findBugs 报告:

    StringBuffer printData = getPrintData(data);

try {
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(new File(linkName)));
out.write(printData.toString());
out.flush();

final FileInputStream f = new FileInputStream(new File(linkName));
return f;
} catch (final IOException ioe) {
ioe.printStackTrace();
}

我正在使用 StreamWriter 写入文件.

最佳答案

您构建 OutputStreamWritersingle argument .这意味着它将转换来自 printData 的 Java 字符串。 (Unicode)到字节流(文件输出)使用操作系统的默认编码,根据本地化设置的不同,在不同的机器上可能会得到不同的结果。

例如,假设您的对象 printData包含日语文本。当人们在日本和美国的 Windows 上运行您的软件时,他们会将不同的数据写入文件。美国用户可能会用问号 (?) 替换所有象形文字,而日本用户可能会保留带有原始日文字符的 UTF-8 文件。如果原始文本包含多种语言,结果将更加难以预测。

这对您的应用程序来说可能是也可能是 Not Acceptable ,这取决于它做什么以及数据来自哪里。这就是警告的内容。

如果您知道您的应用程序应该生成的文件编码,您可能希望在构建 OutputStreamWriter 时明确选择它。 .另一方面,如果您希望将其转换为机器的默认表示,请保持原样。

关于findbugs - 在输出流中找到 'Reliance on default encoding',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14374161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com