其实就一句话:保证你文件的编码方式和解码方式一致就可以了。
如果你仅仅是读取外部的文件,那麼接下来这麼用:
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;
}
}
取消
评论