其實就一句話:保證你文件的編碼方式和解碼方式一致就可以了。
如果你僅僅是讀取外部的文件,那麼接下來這麼用:
try {
InputStream mInputStream = context.getAssets().open("text2.txt");
BufferedReader mReader = new BufferedReader(new InputStreamReader(
mInputStream, "UTF-8"));
mReadResult = mReader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
不過對於ANSI格式的文件現在還沒有找到正確讀取的辦法,摸索中...
如果你先寫入文件,再讀出文件,為了保證編碼的一致性,接下來這樣用:
public static String encodin = "UTF8"
public static String encodout = "UTF8"
static void writeOutput(String str) {
try {
FileOutputStream fos = new FileOutputStream("test.txt");
Writer out = new OutputStreamWriter(fos, encodout);
out.write(str);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
static String readInput() {
StringBuffer buffer = new StringBuffer();
try {
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis, encodin);
Reader in = new BufferedReader(isr);
int ch;
while ((ch = in.read()) > -1) {
buffer.append((char)ch);
}
in.close();
return buffer.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}