A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pthuakai 中级黑马   /  2013-4-3 16:52  /  1275 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 pthuakai 于 2013-4-8 12:22 编辑

import java.io.*;
class ObjectStreamDemo {
public static void main(String[] args)throws IOException {
  writeObj();
}
public static void readObj()throws IOException
{
  ObjectInputStream ois=new ObjectInputStream(new FileInputStream("obj.txt"));
  Person p=(Person)ois.readObject();
  System.out.println(p);
  ois.close() ;
}
public static void writeObj()throws IOException
{
  ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("obj.txt"));
  oos.writeObject(new Person("lisi",39));
  oos.close();
}
}
class Person
{
String name;
int age;
Person(String name,int age)
{
  this.name=name;
  this.age=age;
}
public String toString()
{
  return name+":"+age;
}
}

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

6 个回复

倒序浏览
出现了ClassNotFoundException,找不你这个类
回复 使用道具 举报
本帖最后由 黄玉昆 于 2013-4-3 22:16 编辑

建议:
1、希望你将代码写入代码框中,这样可以让大家更好的帮你解答问题,谢谢
2、希望你可以将你的问题写出来,这样你以后看到自己的这个帖子,你能一眼就看出你这个程序的问题。
3、如果你能在代码加上适当的注释就更perfect了。谢谢
具体操作可看:http://bbs.itheima.com/thread-42978-1-1.html
回复 使用道具 举报
发表于 昨天 17:06 |只看该作者 出现了ClassNotFoundException,找不你这个类
如果我要能找到问题,就不发帖了,所以你能帮忙改改不?
回复 使用道具 举报
  1. import java.io.*;

  2. class ObjectStreamDemo {
  3.         public static void main(String[] args) throws IOException {
  4.                 writeObj();
  5.         }

  6.         public static void readObj() throws IOException, Exception {
  7.                 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
  8.                                 "obj.txt"));
  9.                 Person p = (Person) ois.readObject();
  10.                 System.out.println(p);
  11.                 ois.close();
  12.         }

  13.         public static void writeObj() throws IOException {
  14.                 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
  15.                                 "obj.txt"));
  16.                 oos.writeObject(new Person("lisi", 39));
  17.                 oos.close();
  18.         }
  19. }

  20. class Person implements Serializable{
  21.         String name;
  22.         int age;

  23.         Person(String name, int age) {
  24.                 this.name = name;
  25.                 this.age = age;
  26.         }

  27.         public String toString() {
  28.                 return name + ":" + age;
  29.         }
  30. }
复制代码
楼主程序中Person类要实现序列化接口,才能进行二进制数据流传输。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
今后要学着看异常,碰到不会的时候要学着查文档,像这样

运行后出现异常,首先看看是什么异常。java.io.NotSerializableException: Person,说明是io包里面的,那么打开api文档

找到这个异常,看看他的提示,“当实例需要具有序列化接口时,抛出此异常。序列化运行时或实例的类会抛出此异常。参数应该为类的名称。”
然后发现下面有提供一个接口

再找到它

然后了解到这个异常的原因是因为 NotSerializableException 没有实现序列化接口导致的,所以要让Preson类实现Serializable

评分

参与人数 1技术分 +2 收起 理由
黄玉昆 + 2 鼓励鼓励

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马