0
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 인코딩을 지정한 reader의 매개 변수로 전달했습니다. 출력기 파일 경로에 UTF-8로 작성자로 글을 쓰고 있습니다.Java 자산 폴더에서 UTF-8 인코딩을 읽고 쓰려면 어떻게해야합니까? 코드가 있지만 작동하지 않습니다. 내가 얻은 결과는 /Defnde
파일을 읽고 쓰지만 인코딩이 여전히 잘못되었습니다. 나는 다음과 같은 글자를 얻는다 : 어디 있는가 = Ddende est/D nde
내가 뭘 잘못하고 있니?
는 [텍스트 파일을 읽는 UTF-8 형식] 여기 당신 솔루션을 제공 [1] [1] http://stackoverflow.com/questions/9946817/why-does-this-bufferedreader-not-read-in-the-specified-utf-8-format/22062191#22062191 –