在读取双字节字符时,主要涉及到编码的选取:
public static boolean isRightfulTXT(File f) {
// TODO Auto-generated method stub
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) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
以上代码功能:检测txt文件中是否含有双字节字符,若有返回假,否则返回真。