JAVA中判断一个对象存在

2025-04-26 01:44:25
推荐回答(4个)
回答1:

//我也来凑个热闹,建议将数据封装在一个对象中
//这个例子是将一些数据封装在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 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:

你的意思是反序列化。
但是你的循环都写错了.读流
文件中有多少个对象在一定情况下你是不能预知的。
写个判断。用while循环
ArrayList list = new ArrayList();
while(true){
if(read.readObject()!=null){
//判断对象不为空
list.add(read.readObject());
}else{
//为空结束循环
break;
}
}
注:read是:ObjectOutputStream的实列

回答3:

不知道你是用什么类来读的.我有一个读文件的类你可以参考一下.
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:

!= null