黑马程序员技术交流社区
标题:
JAVA存储文件的问题
[打印本页]
作者:
行如止水
时间:
2013-8-25 09:55
标题:
JAVA存储文件的问题
本帖最后由 行如止水 于 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);
复制代码
但是会出现错误,所以想请教一下各位大牛!
作者:
yangjie
时间:
2013-8-25 11:24
按String name = "zhangsan"这句,可以先转成字节数组再看数组长度。name.getBytes().length
不带参数的getBytes()用的是系统默认编码,中文不同编码的字节数不一样,可以在getBytes的参数里指定你想用什么编码转换。
作者:
以防万一
时间:
2013-8-30 00:33
{:soso_e176:}
亲,请问下问题是否解决?
如果已解决请及时将未解决改为已解决
如果未解决请回帖追问
三天未回复的将视为已解决
详情参考:
如何更改分类
保持队形,谢谢合作
{:soso_e181:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2