展会信息港展会大全

Android在读取txt文件时出现乱码的问题
来源:互联网   发布日期:2016-01-13 21:59:35   浏览:1800次  

导读:很多Android开发者在读取含有双字节字符的txt文件的时候,可能会中文乱码问题,解决办法如下:private String getTextString(String pathandname) throws IOException{ String str = ; ......

很多Android开发者在读取含有双字节字符的txt文件的时候,可能会中文乱码问题,解决办法如下:

private String getTextString(String pathandname) throws IOException{

String str = "";

FileInputStream fis = new FileInputStream(pathandname);

//InputStreamReader isr = new InputStreamReader(fis, "gbk");

//BufferedReader br = new BufferedReader(isr);

int size = fis.available();

byte[] buffer = new byte[size];

fis.read(buffer);

fis.close();

str = new String(buffer, "GBK");//支持双字节字符

myApp.setCharNumofString(str.length());//存储总字符数

return str;

}

下面附带一个检测txt文件中是否含有双字节字符的方法,主要功能:检测txt文件中是否含有双字节字符,若有返回假,否则返回真。

public static boolean isRightfulTXT(File f) {

String regexp = "[^\\x00-\\xff]";//双字节字符

Pattern p = Pattern.compile(regexp);

try {

FileInputStream fis = new FileInputStream(f);

//"GBK"编码方式支持双字节字符

InputStreamReader isr = new InputStreamReader(fis, "GBK");

BufferedReader br = new BufferedReader(isr);

String line = "";

while ((line = br.readLine()) != null){

//循环读取文件每一行,检测是否含有双字节字符

Matcher m = p.matcher(line);

if (m.find()) {

fis.close();

isr.close();

br.close();

return false;

}

}

fis.close();

isr.close();

br.close();

}

catch (FileNotFoundException e) {

e.printStackTrace();

}

catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

catch (IOException e) {

e.printStackTrace();

}

return true;

}

赞助本站

人工智能实验室

相关热词: Android 读取 txt 文件 乱码

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港