java如何输出和输入一个类的所有对象

使用java写通讯录程序,需要程序结束时把所有输入的对象存到文件里,在程序下一次开始时能够把类中的所有对象读取出来

你可以参考一下这段代码,可以帮助你理解对象的读写:
import java.io.*;
//Product类,必须实现Serializable接口
class Product implements Serializable
{
int ID;
String name;
String categories;
double productPrice;
Product(int id, String nm, String categ,double price)
{
ID =id;
name=nm;
categories = categ;
productPrice = price;
}
}
public class Ex8_12
{
public static void main(String args[])
{
Ex8_12 os = new Ex8_12();
os.saveObj();
os.readObj();
}
//储存数据到文件里
public void saveObj()
{
Product pro = new Product(1234, "apple", "computer", 9999);
try
{
FileOutputStream fo = new FileOutputStream("o.dat");
ObjectOutputStream so = new ObjectOutputStream(fo);
so.writeObject(pro);
so.close();
}
catch(Exception e)
{
System.err.println(e) ;
}
}
//从文件里读出数据
public void readObj()
{
Product prod;
try
{
FileInputStream fi = new FileInputStream("o.ser");
ObjectInputStream si = new ObjectInputStream(fi);
prod = (Product)si.readObject();
si.close();
System.out.println("ID: " + prod.ID);
System.out.println("name: " + prod.name);
System.out.println("age: " + prod.categories);
System.out.println("dept.: " + prod.productPrice);
}
catch(Exception e)
{
System.err.println(e);
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-09
用ObjectOutputStream把对象写到文件中去,下次再用ObjectInputStream从文件中读出来追问

Serializable接口,和序列化需要用到么,起到什么作用,请说的详细一些

追答

Serializable接口是一个“标识”接口,它不包含任何抽象方法。它的作用只是向JVM“声明”一下某个类是可安全序列化的。所谓序列化 (Serialization),就是将对象的状态信息转换为可以存储或传输的形式的过程。反序列化就是反过来的过程。

本回答被网友采纳
第2个回答  2014-12-09
先让你要保存到类实现可序列化接口(Serializable),然后学学java io和流(Stream)的知识
相似回答