设为首页 加入收藏

TOP

Android中读取中文txt
2014-11-24 03:00:50 来源: 作者: 【 】 浏览:2
Tags:Android 读取 中文 txt

InputStream is = context.getResources().openRawResource(R.raw.json);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();

String str = "";
try {
str = br.readLine();
while(str != null)
{
sb.append(str);
str = br.readLine();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response = sb.toString();



由于Java是用UNICODE编码,一个中文占两个字节,inputstream读取的是字节流,所以当然会乱码。换成下面一种方法就可以了。


InputStream is = context.getResources().openRawResource(R.raw.json);
ByteArrayBuffer bb = new ByteArrayBuffer(500);
int current=0;
String str = "";
try {
while((current = is.read())!=-1)
{
bb.append(current);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response = EncodingUtils.getString(bb.toByteArray(),"GB2312");


测试代码,命名很不规范,请见谅。代码,由于不了解输入输出流,只能按自己的理解,就是inputstream文件读入一个输入流,并用current记录字节数,然后BtyeArrayBuffer::append(int)从输入流获取刚才读取的字节流,再按GB2312编码。得到中文String.


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇嵌入式Linux的串口通讯C++程序设计 下一篇Android中ImageButton的运用详解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 C 语言函数中,如 (2025-12-24 12:19:41)
·C盘里面的AppData文 (2025-12-24 12:19:38)
·c语言中的“%d,%s,%c (2025-12-24 12:19:35)
·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)