在15分22秒,为何说“中”是java的字符串,是UTF-16be的编码,在接着的阐述中说可以从j第10个字节读取,用gbk转化,能够成为“中”??????、、、实在是不明白。。。。
2 回答
我的理解是,用seek(10)定位到 “中”字,先将字节存入buf数组,然后用gbk编码将buf改成gbk编码,最后打印输出buf,就得到了“中”字。
String s = "中";
byte[] gbk = s.getBytes("gbk");
raf.write(gbk);
System.out.println(raf.length());
//读文件,必须把指针移到头部
raf.seek(10);
//一次性读取,把文件中的内容都读到字节数组中
// byte[] buf = new byte[(int)raf.length()];
byte[] buf = new byte[2];
raf.read(buf);
System.out.println(Arrays.toString(buf));
String s1=new String(buf,"gbk");
System.out.println(s1);
举报
0/150
提交
取消