本帖最后由 行如止水 于 2013-8-30 10:00 编辑
现有这样一段代码:- //写入第一条数据
- String name = "zhangsan";
- int age = 30;
- raf.writeBytes(name);
- raf.writeInt(age);
- //写入第二条数据
- name = "lisi";
- age = 31;
- raf.writeBytes(name);
- raf.writeInt(age);
- //写入第三条数据
- name = "wangwu";
- age = 32;
- raf.writeBytes(name);
- raf.writeInt(age);
复制代码 我想知道这三个String在文件中各占多少字节,是怎么存的,我想他们不可能都是占8个字节!
我读文件的代码是这样的:- byte b[] = null; //定义字节数组
- String name = null;
- int age = 0;
- raf.skipBytes(12); //跨过第一个人的信息
- System.out.println("第二个人的信息:");
- b = new byte[8];
- for(int i = 0; i < 8; i++){
- b[i] = raf.readByte();
- }
- age = raf.readInt();
- System.out.println("\t|-姓名:"+new String(b));
- System.out.println("\t|-年龄:"+age);
- raf.seek(0);
- System.out.println("第一个人的信息:");
- for(int i = 0; i<8;i++){
- b[i] = raf.readByte();
- }
- age = raf.readInt();
- System.out.println("\t|-姓名:"+new String(b));
- System.out.println("\t|-年龄:"+age);
- raf.skipBytes(12);
- System.out.println("第三个人的信息:");
- for(int i = 0; i<8;i++){
- b[i] = raf.readByte();
- }
- age = raf.readInt();
- System.out.println("\t|-姓名:"+new String(b));
- System.out.println("\t|-年龄:"+age);
复制代码 但是会出现错误,所以想请教一下各位大牛!
|