其實就一句話:保證你文件的編碼方式和解碼方式一致就可以了。
如果你僅僅是讀取外部的文件,那麼接下來這麼用:
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;}}