JAVA中判断一个对象存在

我将几个字符串对象写进了一个DAT文件中,现在想用FOR循环逐个读出来,FOR(INT I=1;???;I++),问号的地方该咋写?如果写个I<2的话居然一个都读不出来。。郁闷。我用的是readObject(),帮帮忙,谢谢!

第1个回答  推荐于2016-07-18
//我也来凑个热闹,建议将数据封装在一个对象中
//这个例子是将一些数据封装在Person对象中
//:SerializableTest.java

import java.io.*;
import java.util.ArrayList;
public class SerializableTest {
public static void main(String[] args) throws Exception{
//保存对象的文件,这个要根据自己需要重新调整的,我这个是在Linux下的目录结构
File f = new File("/home/lsx/person.dat");
//创建一个集合类,用于存放person对象
ArrayList ps = new ArrayList();
//将10个person对象放入到集合中
for(int i=0; i<10; i++)
ps.add(new Person("person"+i,i));

//因为ArrayList类已实现了序列化,所以可以将ArrayList对ps存入文件
//也就是说,现在保存的是一个集合,里边的内容是Person对象
IO.save(ps, f);

//从文件中将这个集合读取出来
Object o = IO.load(f);
ArrayList list = (ArrayList)o;

//打印这个集合中的内容
for(int i=0; i<list.size(); i++)
System.out.println(list.get(i));
}
}

class IO{
//保存对象到文件
static void save(Object obj,File f) throws Exception{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f));
oos.writeObject(obj);
oos.flush();
oos.close();
}
//从文件读取对象
static Object load(File f) throws Exception{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
Object obj = ois.readObject();
ois.close();
return obj;
}
}

//要想Person能以对象的形式保存到文件,Person类必须实现序列化:Serializable
class Person implements Serializable{
private static final long serialVersionUID = 6213933727640755594L;
private String name;
private int id;
Person(String n,int i){
name=n;id=i;
}
public String getName(){return name;}
public int getId(){return id;}
public String toString(){return "name:"+name+" id:"+id;}
}本回答被提问者采纳
第2个回答  2008-12-12
你的意思是反序列化。
但是你的循环都写错了.读流
文件中有多少个对象在一定情况下你是不能预知的。
写个判断。用while循环
ArrayList list = new ArrayList();
while(true){
if(read.readObject()!=null){
//判断对象不为空
list.add(read.readObject());
}else{
//为空结束循环
break;
}
}
注:read是:ObjectOutputStream的实列
第3个回答  2008-12-12
不知道你是用什么类来读的.我有一个读文件的类你可以参考一下.
import java.io.BufferedReader;
import java.io.FileReader;

public class ReadText1 {
public static void main(String[] args) throws Exception {
//从文件中取出所有数据
FileReader fin = new FileReader("data.dat");
BufferedReader bf = new BufferedReader(fin);
String str = "";
String data = "";
while ((str = bf.readLine()) != null) {
data += str;
}
System.out.println(data);
}
}
第4个回答  2008-12-12
!= null

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网