【发布时间】:2012-06-23 16:56:30
【问题描述】:
private void CopyAssets2() {
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("");
} catch (IOException e) {
Log.e("File Error", e.getMessage());
}
for (String filename : files) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(filename);
out = new FileOutputStream("/sdcard/Translate/" + filename);
copyFile2(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch (Exception e) {
Log.e("Save Error", e.getMessage());
}
}
}
private void copyFile2(InputStream in, OutputStream out)
throws IOException {
char[] buffer = new char[1024];
Reader reader = new BufferedReader( new InputStreamReader(in, "UTF-8"));
Writer writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
int read;
while ((read = reader.read(buffer)) != -1) {
writer.write(buffer, 0, read);
}
reader.close();
writer.flush();
writer.close();
}
我使用assetManager 获取输入流,并将其作为指定UTF-8 编码的阅读器参数传递。 我也在用 UTF-8 编写器写入输出流文件路径
文件被读写,但编码仍然错误。我得到这样的字符: 在哪里...... =“D�nde est”/D�nde
我做错了什么?
【问题讨论】:
-
在这里为您提供了解决方案[UTF-8 格式读取文本文件][1] [1]:stackoverflow.com/questions/9946817/…
标签: utf-8 inputstream bufferedreader outputstream android-assets