为什么会输出8跟12,这个不太理解为什么是8、12,求告知
public static void main(String[] args) throws IOException{
File demo = new File("demo");
if(!demo.exists())
demo.mkdir();
File file = new File(demo,"raf.dat");
if(!file.exists())
file.createNewFile();
RandomAccessFile raf = new RandomAccessFile(file,"rw");
//指针位置
System.out.println(raf.getFilePointer());
raf.write('A');//只写了一个字节,写进A的后8位
System.out.println(raf.getFilePointer());
raf.write('B');
System.out.println(raf.getFilePointer());
int i = 0x7ffffff;
//用write方法每次只能写一个字节,如果要把i写进去就得写4次
raf.write(i >>> 24);//写进i的高八位
raf.write(i >>> 16);
raf.write(i >>> 8);
raf.write(i);
System.out.println(raf.getFilePointer());
//可以直接写进一个int
//raf.writeInt(i);writeInt底层做的还是上面write所示代码的事情
String s = "中";
byte[] gbk = s.getBytes("gbk");
raf.write(gbk);
System.out.println(raf.getFilePointer());
System.out.println(raf.length());
//读文件,必须把指针移到头部
raf.seek(0);
//一次性读取,把文件中的内容都读到字节数组中
byte[] buf = new byte[(int)raf.length()];
raf.read(buf);
System.out.println(Arrays.toString(buf));
//16进制方式输出
for (byte b : buf) {
System.out.print(Integer.toHexString(b));
}