java中怎么读出txt里面存的好多个对象

fis = new FileInputStream(f);
ois = new ObjectInputStream(fis);
Object object = ois.readObject();这个方法只能读出txt文件里面的第一条数据 而不能得到所有的数据 应该循环去读 但是这个怎么读呢 请教各位大侠

ois.readObject(); 读取第一个数据,然后有个游标一样的东西自动指向下一个数据,
如果再调用ois.readObject();就读取第二个数据,游标一样的东西自动指向下一个数据
如此循环
所以你只要控制循环就可以了
例如
Object obj =ois.readObject(); //第一个数据
while(obj!=null){
obj = ois.readObject(); //循环下面的数据
}
希望对你有帮助追问

java.io.StreamCorruptedException: invalid type code: AC

obj=(Person) ois.readObject();
while(obj!=null){
obj = (Person) ois.readObject(); //循环下面的数据
list.add(obj);
}
Iterator it=list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
这么写有异常

追答

你是不是定义了多次objectOutputStream对象?

追问

// 把对象写入文件.
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(new FileOutputStream(
"D:\\1\\a.txt", true));
ObjectInputStream ois = null;
try { ois = new ObjectInputStream(new FileInputStream(
"D:\\1\\a.txt"));
Student student=null;
while ((student=(Student) ois.readObject())!=null) {
list.add(student);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-24
不会吧,还真有这么神的?
至少最简单,你应该考虑使用一个 properties(.ini) 格式吧,或者一个xml格式吧.
再者,或者是纯粹serializable格式,
要不然就是json格式,
当然,还有ON格式.
不是读txt格式的对象,
问题应该这样:
有什么方法处理格式文本数据?
如果这样想,你现在的问题就不是你的问题了
第2个回答  2012-08-26
在储存对象将对象放入数组对象或是集合对象中存起来
再读
相似回答