zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java bufferedwriter 编码,Java BufferedWriter对象与utf-8

JAVA编码对象 utf BufferedWriter
2023-06-13 09:11:46 时间

大家好,又见面了,我是你们的朋友全栈君。

I have the following code and I want to make the outputstream use utf-8. Basically I have characters like é that appear as é so it looks like an encoding issue.

I’ve seen lots of examples that use…

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(path),”UTF-8″);

My current code though is…

BufferedWriter out = new

BufferedWriter(new FileWriter(DatabaseProps.fileLocation + “Output.xml”));

Is it possible to define this object as UTF-8 without having to use the OutputStreamWriter?

Thanks,

解决方案

No. FileWriter doesn’t let you specify the encoding, which is extremely annoying. It always uses the system default encoding. Just suck it up and use OutputStreamWriter wrapping a FileOutputStream. You can still wrap the OutputStreamWriter in a BufferedWriter of course:

BufferedWriter out = new BufferedWriter

(new OutputStreamWriter(new FileOutputStream(path), StandardCharsets.UTF_8));

Or as of Java 8:

BufferedWriter out = Files.newBufferedWriter(Paths.of(path));

(Of course you could change your system default encoding to UTF-8, but that seems a bit of an extreme measure.)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140839.html原文链接:https://javaforall.cn