繁体   English   中英

我正在使用一个程序来分析我的Java代码,但我不理解该错误或如何解决它

[英]I'm using a program to analyse my Java code and I don't understand the error or how to fix it

我正在使用马里兰大学的FindBug程序,它给了我这个错误。

我已经在众多平台上测试了我的代码,并且该代码可以正常工作,那么为什么此代码的做法不好,我该怎么做才能对其进行改进?

代码截图

它告诉您未指定编码(如何将字符串转换为字节)。

如果您在土耳其编写文本文件,然后在乌兹别克斯坦加载该文件,则可能会得到不同的结果。 相反,(例如)您可以直接使用自己使用指定的编码将字符串转换为字节来指定编码(有关示例,请参见String.getBytes )。

您需要指定字符集

您可以使用OutputStreamWriter

fileWriter = new OutputStreamWriter(new FileOutputStream(file),charset);

请参阅FileWriter文档:“此类的构造函数假定默认字符编码和默认字节缓冲区大小是可接受的。要自己指定这些值,请在FileOutputStream上构造一个OutputStreamWriter。”

依赖默认字符编码可能被认为是不好的做法。

使用FileOutputStream而不是FileWriter 可以使用OutputStreamWriter对其进行包装,它允许您在构造函数中传递编码

否则,如Jeff所说,数据将无法正确加载。

OutputStream fout = new FileOutputStream("test.txt");  
OutputStream bout = new BufferedOutputStream(fout);  
OutputStreamWriter out = new OutputStreamWriter(bout, "UTF-8");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM