import java.io.*;public class Bianma {
public void bm(String filepath) {
String sread=new String();
try
{ InputStreamReader fs=new InputStreamReader(new FileInputStream(filepath),"GBK");
BufferedReader br=new BufferedReader(fs);
String xingming="";
String zhanghao="";
while((sread=br.readLine())!=null)
{
byte[] bt=sread.getBytes();
xingming=new String(bt,20,4);//取2个汉字
xingming=new String(xingming.getBytes("ISO8859_1"));
System.out.println(zhanghao+","+xingming);
System.out.println(sread);
}
}
catch(IOException o) {
o.printStackTrace();
}
}
public static void main(String[] args) {
Bianma bi=new Bianma();
bi.bm("1.txt");
}
}
1.txt内容为:1111111111111111114说得来飞机
6987451221554125562士大夫十分士大夫我想取得第一行“说得”,第二行“士大” 就是文本的20-24之间的中文,按道理应该为2个汉字,现在不管怎么取都是乱码“??”请高手指点了。。
public void bm(String filepath) {
String sread=new String();
try
{ InputStreamReader fs=new InputStreamReader(new FileInputStream(filepath),"GBK");
BufferedReader br=new BufferedReader(fs);
String xingming="";
String zhanghao="";
while((sread=br.readLine())!=null)
{
byte[] bt=sread.getBytes();
xingming=new String(bt,20,4);//取2个汉字
xingming=new String(xingming.getBytes("ISO8859_1"));
System.out.println(zhanghao+","+xingming);
System.out.println(sread);
}
}
catch(IOException o) {
o.printStackTrace();
}
}
public static void main(String[] args) {
Bianma bi=new Bianma();
bi.bm("1.txt");
}
}
1.txt内容为:1111111111111111114说得来飞机
6987451221554125562士大夫十分士大夫我想取得第一行“说得”,第二行“士大” 就是文本的20-24之间的中文,按道理应该为2个汉字,现在不管怎么取都是乱码“??”请高手指点了。。
在java中一个字符是2个字节
中文也只是一个字符
char [] chars=new char[test.length()];
test.getChars(0,test.length(),chars,0);
System.out.println(chars[19]);