ObjectoutputStream和ObjectinputStream的一个不完善的例子
2011-06-01 23:07 Rollen Holt 阅读(1153) 评论(0) 编辑 收藏 举报/** * 编写一个Person类,包含序号、姓名、年龄、性别等4个属性,再编写一个Application程序 * ,采用ObjectOutputStream类Person类的若干个对象实例输出到外部设备的文件上,再采用 * ObjectInputStream类从外部设备的文件上读取这些对象实例并显示到图形用户界面上。 * */ /** * @author renwenchao * @version 1/6/2011 * */ import java.awt.*; import javax.swing.*; import java.io.*; import java.awt.event.*; import java.util.*; public class javaHomeWork5_2 extends JFrame implements ActionListener{ Button saveButton; Button openButton; Button showButton; JPanel panel; JTextArea textArea; String str=""; Person person1; Person person2; Person person3; Person[] persons; /** * 构造函数 * */ javaHomeWork5_2(){ setTitle("renwenchao"); setSize(500 , 500); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel=new JPanel(); textArea=new JTextArea(); JScrollPane js=new JScrollPane(textArea); openButton=new Button("OpenFile"); saveButton=new Button("SaveFile"); showButton=new Button("ShowFile"); panel.setLayout(new FlowLayout()); panel.add(openButton); panel.add(saveButton); panel.add(showButton); //panel.add(js); panel.add(textArea); add(panel); openButton.addActionListener(this); saveButton.addActionListener(this); showButton.addActionListener(this); person1=new Person("A",12, 123); person2=new Person("B",12, 123); person3=new Person("C",12, 123); persons=new Person[3]; persons[0]=person1; persons[1]=person2; persons[2]=person3; } /** * 处理Button事件函数 * */ public void actionPerformed(ActionEvent event){ if(event.getSource()==openButton){ openFile(); } if(event.getSource()==saveButton){ try { saveFile(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(event.getSource()==showButton){ try { showFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 打开文件函数 * */ public void openFile(){ } /** * 保存文件函数 * @throws IOException * @throws FileNotFoundException * */ public void saveFile() throws FileNotFoundException, IOException{ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee.dat")); out.writeObject(persons); out.close(); } /** * 在文本域现实内文件内容 * @throws ClassNotFoundException * @throws IOException * */ public void showFile() throws IOException, ClassNotFoundException{ ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.dat")); Person[] newPerson = (Person[]) in.readObject(); for(Person per: persons){ str+=per.toString(); str+="\n"; } textArea.setText(str); in.close(); } /** * 主函数 * */ public static void main(String[] args){ new javaHomeWork5_2(); } } /** * Person类 * */ class Person implements Serializable{ private String name; private int age; private double selary; public Person(){ } Person(String name, int age, double selary){ this.name=name; this.age=age; this.selary=selary; } public String getName(){ return name; } public int getAge(){ return age; } public double getSelary(){ return selary; } }
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================
![](http://service.t.sina.com.cn/widget/qmd/1882500857/8c17d4b5/1.png)