我想做这样一件事情,客户机和服务器通信时客户机会给服务器发过去一定格式的消息,服务器接收后可以将这些消息封装成某一确定类型的对象数组,然后我想把这些对象以序列化的方式写入某个文件,是以追加的方式写入,因为后边还可能再接收到消息(这时我必须得重新打开此文件,然后把后边的对象追加进去),我同样也要写入这个文件。
当文件写满后(比如写入1000个对象以后认为该文件太大了不允许再写了),此时,我要从此文件中读出10个对象,关闭此文件流,然后发送给某个客户机,过了某一段时间后(比如客户机又来要数据),我要再打开此文件从上次的读取出再接着读出10个对象,发送出去,如此循环直到此文件读完。现在有几个难点1.向文件里追加写序列化对象  2.从指定的位置读取对象(而无需从文件开头读然后一个个数对象然后定位到对应的位置,应为文件可能很大,这样会浪费太多的时间)
有哪位高手做过这方面的事情,请不吝赐教。追加写文件的程序我从网上找到了,用下边的对象流代替java默认的对象流就可以,随时向文件里追加java对象了。public class MyObjectOutputStream extends ObjectOutputStream {

private boolean append;

private File file; protected MyObjectOutputStream() throws IOException, SecurityException {
super();
// TODO Auto-generated constructor stub
}

public MyObjectOutputStream(File file,boolean append) throws IOException{

super(new FileOutputStream(file));
this.append=append;
this.file=file;
}


protected void writeStreamHeader() throws IOException {
if(!append || !file.exists() || file.length()==0){//防止再次打开文件追加写对象时再次写入头信息
super.writeStreamHeader();
}else{
super.reset();
}

}

}