还是打印不出来啊

HONGBAOABCD 2007-10-06 09:49:03
我想打印出这样的结果:
lisi:258
张三:23
wangwu:25
编写了两个类Emplyee.java和RandomFileTest.java,程序编译也通过了,但是打印结果不对啊!还有在Emplyee.java类中,\0000,占用几个字节啊!
代码如下:Emplyee.java类

public class Emplyee {
public String name = null;
public int age = 0;
public static final int LEN = 8;

/**
* Method Emplyee
*
*
*/
public Emplyee(String name,int age) {
// TODO: Add your code here
if(name.length()>LEN)
{
name = name.substring(0,LEN);
}
else
{
name += "\0000";
}
this.name = name;
this.age = age;
}
}


RandomFileTest.java类
import java.io.*;
public class RandomFileTest {

/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) throws Exception
{
// TODO: Add your code here
Emplyee a = new Emplyee("张三",23);
Emplyee b = new Emplyee("lisi",258);
Emplyee c = new Emplyee("wangwu",25);
RandomAccessFile ra = new RandomAccessFile("tt.text","rw");
ra.writeChars(a.name);
ra.writeInt(a.age);
ra.writeChars(b.name);
ra.writeInt(b.age);
ra.writeChars(c.name);
ra.writeInt(c.age);
ra.close();

String strName = "";
//int len = 0;
//byte[] buf = new byte[8];
RandomAccessFile raf = new RandomAccessFile("tt.text","r");
raf.skipBytes(20);
//len = raf.read(buf);
//strName= new String(buf,0,len);
for(int i=0;i<16;i++)
{
strName += raf.readChar();
}
System.out.println(strName.trim()+":"+raf.readInt());

strName = "";
raf.seek(0);
//len = raf.read(buf);
//strName = new String(buf,0,len);
for(int i=0;i<16;i++)
{
strName += raf.readChar();
}
System.out.println(strName.trim()+":"+raf.readInt());

raf.skipBytes(20);
//len = raf.read(buf);
//strName = new String(buf,0,len);
strName = "";
for(int i=0;i<16;i++)
{
strName += raf.readChar();
}
System.out.println(strName.trim()+":"+raf.readInt());
raf.close();

}
}


...全文
58 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzj520hyy 2007-10-07
  • 打赏
  • 举报
回复
我有点想不通楼主为什么不用序列化来解决这个问题呢?

还有....
ra.writeChars(a.name);
ra.writeInt(a.age);
ra.writeChars(b.name);
ra.writeInt(b.age);
ra.writeChars(c.name);
ra.writeInt(c.age);

这些代码太笨啦....你在Emplyee 类中重写toString()方法,然后直接
rs.write((a.toString()+"\r\n").getBytes())这样不是更爽?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧