使用FileWriter的非默认字符集

时间:2016-08-09 20:42:42

标签: java

我用forbiddenapis检查我的代码并且它给出了错误:

[forbiddenapis] Forbidden class/interface use: java.io.FileWriter [Uses default charset]
[forbiddenapis]   in org.a.b.FileObject (FileObject.java:45)

指向第一行:

FileWriter fw = new FileWriter(fileName);
try {
  BufferedWriter x = new BufferedWriter(fw);
  try {
    x.write(Integer.toString(value));
  }
  finally {
    x.close();
  }
}
finally {
  fw.close();
}

我该如何解决?

2 个答案:

答案 0 :(得分:0)

Read the Javadoc

  

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

答案 1 :(得分:0)

您无法使用FileWriter。使用FileOutputStreamOutputStreamWriter

 try(OutputStream fos = new FileOutputStream("File");
     Writer writer = new OutputStreamWriter(fos, "CHARSET")){
   // ...

 }

另一种选择是:

try(Writer writer=Files.newBufferedWriter(Path, Charset.forName("charset"))){
  // ...
}
相关问题