Java 如何写入文件UTF8?
我想我需要使用Java 如何写入文件UTF8?,java,utf-8,Java,Utf 8,我想我需要使用 BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "UTF8")); 但是,当我将代码更改为BufferedWriter时,那么这行out.write(e)就出了问题 我的代码: public void writeToFile(String fileName, List<ThongtinKhachThue> resultttkt
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "UTF8"));
但是,当我将代码更改为BufferedWriter时,那么这行out.write(e)就出了问题代码>
我的代码:
public void writeToFile(String fileName, List<ThongtinKhachThue> resultttkt){
System.out.println("Begin....");
try {
PrintWriter out = new PrintWriter(new File(fileName));
out.println("//thue.txt");
for(ThongtinKhachThue e : resultttkt){
out.println(e);
}
out.println("Tổng khách thuê phòng: "+TongKhachThue());
out.println("Tổng tiền thu: "+TongTienThuDuoc()+"$");
out.flush();
out.close();
System.out.println("End...");
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
e.printStackTrace();
}
}
我想让它展示的是:
//thue.txt
K1, A1002, 47.05$
K2, A0003, 67.0$
K3, A1001, 31.0$
K4, Không thuê
Tổng khách thuê: 03
Tổng tiền thu: 145.05$
如何将utf-8写入文件并将“3”更改为“03”?使用
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path),"UTF-8"));
这样您就可以设置编码。您需要使用此处提到的字符集名称
它将标准字符集表示为“UTF-8”,而不是“UTF8”
因此,将其更改为“UTF-8”,它就会工作
以下内容供您参考:
- US-ASCII
七位ASCII,又称ISO646-US,又称基本拉丁语
Unicode字符集的块
- ISO-8859-1
ISO拉丁字母表
第一名,又称ISO-LATIN-1
- UTF-8
八位UCS转换格式
- UTF-16BE
16位UCS转换格式,大端字节顺序
- UTF-16LE
16位UCS转换格式,小端字节
命令
- UTF-16
16位UCS转换格式,字节顺序
由可选的字节顺序标记标识
试试这个
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("outfilename"), "UTF-8"));
try {
out.write(aString);
} finally {
out.close();
}
要写入03
(前导零)而不是3
,可以使用
int myInteger = 3;
out.println("Some value: " + String.format("%02d", myInteger) );
有关语法的详细信息,请参阅。因为您已经知道应该使用BufferedWriter,因为它允许您选择编码,所以我看不出这里有什么问题
我只想补充一点,而不是将“UTF8”写成一个易于出错的字符串,从Java1.7开始,您可以使用这个类来获取所有标准字符集:-)
如果Java 1.7不是一个选项,那么您也可以使用Guava的类。是的,您需要使用BufferedWriter。这可能与您所说的“then something with the line out.write(e);”的意思重复?别忘了使用UTF-8编码读取UTF-8文件。例如,如果使用windows编码,它将正确读取使用windows编码的文件。否。。。他们正在做PrintWriter out=newprintWriter(新文件名));
int myInteger = 3;
out.println("Some value: " + String.format("%02d", myInteger) );