private void copyMB() {
AssetManager assetManager = this.getResources().getAssets();
String[] files = null;
try {
files = assetManager.list(assetDir);
} catch (Exception e) {
e.printStackTrace();
}
for(int i=0; i<files.length; i++) {
InputStream in = null;
FileOutputStream fos;
try {
in = assetManager.open(assetDir+"/" + files[i]);
fos = openFileOutput(files[i], Context.MODE_PRIVATE);
copyFile(in, fos);
in.close();
in = null;
fos.flush();
fos.close();
fos = null;
} catch(Exception e) {
e.printStackTrace();
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
我的问题是 åäö 等 UTF-8 字符被看起来很奇怪的字符所取代。如何确保我的 InputStream 阅读器使用 UTF-8?在普通的 Java 中,写起来很容易…… new InputStreamReader(filePath, "UTF-8"); 但是由于我是从 Asset 文件夹中获取它的,所以我不能这样做(我必须使用不会将“UTF-8”作为参数的assetManager.open() 方法。
有任何想法吗?:)
感谢您的帮助。