使用UTF-8写入文件 [英] Write file with UTF-8
本文介绍了使用UTF-8写入文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用utf-8编码编写文件.我想在Excel中的PC上看到此文件我看了足够的实现此代码的示例.但是我没有达到预期的结果.我的代码:
I'm trying to write a file with utf-8 encoding. This file I would like to see on PC in Excel I've looked at enough examples of implementing this code. But I did not achieve the desired results. My code:
String baseDir = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = etName.getText().toString() + ".csv";
String filePath = baseDir + File.separator + fileName;
File sdCardFile = new File(filePath);
String DATE = "01.04.2017 - 30.04.2017";
String NEW_LINE = "\n";
String NEW_CELL = ";";
String HEADER = "Место;" +
"Фамилия ИО;" +
"Цикл ТО-1;" +
"Культурное состояние л-ва;" +
"Посещение тех.занятий;" +
"Расшифровка лент;" +
"Охрана труда;" +
"Отказы";
BufferedWriter bufferedWriter = new BufferedWriter
(new OutputStreamWriter(new FileOutputStream(sdCardFile), "UTF-8"));
bufferedWriter.write(DATE);
bufferedWriter.write(NEW_LINE);
bufferedWriter.write(HEADER);
for(int i = 0; i < machinists.size(); i ++){
bufferedWriter.write(NEW_LINE);
bufferedWriter.write(String.valueOf(i+1));
bufferedWriter.write(NEW_CELL);
bufferedWriter.write(machinists.get(i).getLastName());
bufferedWriter.write(NEW_CELL);
bufferedWriter.write(String.valueOf(machinists.get(i).getPoints().getTo()));
bufferedWriter.write(NEW_CELL);
bufferedWriter.write(String.valueOf(machinists.get(i).getPoints().getCultureState()));
bufferedWriter.write(NEW_CELL);
bufferedWriter.write(String.valueOf(machinists.get(i).getPoints().getTechnicalSessions()));
bufferedWriter.write(NEW_CELL);
bufferedWriter.write(String.valueOf(machinists.get(i).getPoints().getTapeTranscript()));
bufferedWriter.write(NEW_CELL);
bufferedWriter.write(String.valueOf(machinists.get(i).getPoints().getOt()));
bufferedWriter.write(NEW_CELL);
bufferedWriter.write(String.valueOf(machinists.get(i).getPoints().getFault()));
bufferedWriter.write(NEW_CELL);
}
bufferedWriter.close();
}
但是我看到了.
为什么?
推荐答案
我解决了这个问题!
FileOutputStream os = new FileOutputStream(sdCardFile);
os.write(0xef);<-!!!!!!!!
os.write(0xbb);<-!!!!!!!!
os.write(0xbf);<-!!!!!!!!
CSVWriter writer = new CSVWriter(new OutputStreamWriter(os), ';');
writer.writeNext(HEADER);
...
writer.writeNext('something data');
writer.close();
这篇关于使用UTF-8写入文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文