当前位置:  技术问答>java相关

ObjectInputStream.readObject()的问题!!!

    来源: 互联网  发布时间:2015-02-01

    本文导语:  import java.io.*; import java.util.*; public class ree  {     public static void main(String args[])     {       try{         File file = new File("e.txt");         FileOutputStream fos = new FileOutputStream(file);         Objec...

import java.io.*;
import java.util.*;

public class ree 
{
    public static void main(String args[])
    {
      try{
        File file = new File("e.txt");
        FileOutputStream fos = new FileOutputStream(file);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        Vector vector = new Vector();
        String s = new String("wwww");
        vector.add(s);
        oos.writeObject(s);
        oos.close();
        fos.close();
      }catch(IOException e){
          System.out.println("IOException e");
      }catch(ClassNotFoundException se){
          System.out.println("ClassNotFoundException se");
      }
   }
}

//////////////////////////////////////////////////////////////////////

import java.io.*;
import java.util.*;

public class ree 
{
    public static void main(String args[])
    {
      try{
        File file = new File("e.txt");
        FileInputStream fos = new FileInputStream(file);
        ObjectInputStream oos = new ObjectInputStream(fos);
        Vector ob = (Vector)oos.readObject();
        System.out.println(ob.toString());
        oos.close();
        fos.close();
      }catch(IOException e){
          System.out.println("IOException e");
      }catch(ClassNotFoundException se){
          System.out.println("ClassNotFoundException se");
      }
   }
}

////////////////////////////////////////////////////////////////////

class kk
{
   int i;
   String d;

}
/////////////
以上代码没问题,但改为
  kk p = new kk();
  p.i = 0;
  p.d = "sd";
  oos.writeObject(p);
////////////////////////////////
 kk ob = (kk)oos.readObject();
////////////////////////////////
  写入成功,无错误
  但读的时候
  kk ob = (kk)oos.readObject();
  抛出 IOException 为什么???(写的时候都写入了) 如何才能读出一个 kk 类呢???

|
对于你的前两个程序,我有几个问题:
1.你第一个程序中写入的对象为String,而你第二个程序中读出的对象却为Vector.此时jdk会
有异常:java.lang.ClassCastException:java.lang.String。
2.第二个程序中要读出对象,所以要注意使程序能读出写入对象的文件:"e.txt",让e.txt在第
二个程序的根目录下。
3.关于类kk不能读出的问题,你看是不是上面的两个原因。但要注意的是要序列化的类必须要实现Serializable接口,例如这样:
class kk implements Serializable{
{
  int i;
  String d;

}.


                                         



    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.io类objectinputstream.getfield的类成员方法: objectinputstream.getfield定义及介绍
  • 谁能告诉我如何使用ObjectInputStream。
  • java命名空间java.io类objectinputstream的类成员方法: objectinputstream定义及介绍
  • 各位老兄好,通过ObjectoutputStream ,ObjectINputStream 如何读写数据
  • java命名空间java.io类objectinputstream的类成员方法: readfields定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readclassdescriptor定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readstreamheader定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readobjectoverride定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readboolean定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readbyte定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readint定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readunsignedbyte定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readfloat定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readchar定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readdouble定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readshort定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readlong定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readunsignedshort定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: skipbytes定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: readfully定义及介绍
  • java命名空间java.io类objectinputstream的类成员方法: defaultreadobject定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3