1.用InputStreamReader读取中文文件,如下:
File file= new File("d:\\DrugTraffickingId.idx");
FileInputStream fistwice = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fistwice,"gbk");//可以读中文内容,其中"gbk"也可能是“UTF-8”,根据自己写的文件字符集而定
BufferedReader br = new BufferedReader(isr); //用br操作读文件
fistwice.skip(position); //指定开始读的位置
char []brIDcardData = new char[20];
br.read(brIDcardData); //读了20个字节
String str2 = (String.valueOf(brIDcardData)).trim();//取出的内容转到String中
2.判断string中含有中文字符
含有中文字符
str2.getBytes().length != str2.length();//这句就是来判断 String是否含有中文字符。
3.判断某一个字符是否为中文字符
( brIDcardData[i]>= 0x4e00)&&(brIDcardData[i]<=0x9fbb) //brIDcardData的第i个字符为中文字符
中文为2个字节,C++中char一个字节,在C++中占2个char,而在java中char为2个字节,既一个中文占了一个char。
也就是说,在C++中申请了20个字节的char,只能存了10个汉字。而java中申请了20个char,就可以存20个汉字。
所以C++的中文在java中是不能直接使用的,需要压缩空间转换的。
( brIDcardData[i]>= 0x4e00)&&(brIDcardData[i]<=0x9fbb)