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

writeObject()写字符串成功,但向量就不行,为什么?

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

    本文导语:  readObject()是报错为空值 | 我这样用可以的啊 Server:     Vector v = new Vector(); v.add("a"); v.add("b"); v.add("c"); objOut.writeObject(v); Client:   Vector v = (Vector)input.readObject(); System.out.println(v.toString()...

readObject()是报错为空值

|
我这样用可以的啊
Server:    
Vector v = new Vector();
v.add("a");
v.add("b");
v.add("c");
objOut.writeObject(v);

Client:  
Vector v = (Vector)input.readObject();
System.out.println(v.toString());//为[a, b, c]

|
Vector 肯定可以用readObject() 读回来的,因为它实现了Serializable 接口,但放在Vector 中的对象就不一定实现了Serializable 接口,因此不一定会序列化成功。不过你的例子中包含的是String 对象,是实现了Serializable 接口的,是肯定可以的。可以用下面例子测试一下:

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

public class TestObject {
  public static void main(String[] args) {
  try {
    Vector v = new Vector();
    v.add( "a" );
    v.add( "b" );
    v.add( "c" );
    v.add( "e" );
    v.add( "f" );
    v.add( "g" );
    System.out.println(v.toString());
    ObjectOutputStream os = new ObjectOutputStream( new FileOutputStream("v.ser", true));
    os.writeObject(v);
    ObjectInputStream is = new ObjectInputStream( new FileInputStream("v.ser"));
    Vector v1 = (Vector) is.readObject();
    System.out.println(v1.toString());
  } catch(Exception e) {
    e.printStackTrace();
  }
  }
}

检查一下你想用writeObject() 的对象是否声明实现了Serializable 接口。

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • java命名空间javax.rmi.corba接口stubdelegate的类成员方法: writeobject定义及介绍
  • java命名空间java.beans类xmlencoder的类成员方法: writeobject定义及介绍
  • java命名空间java.io接口objectoutput的类成员方法: writeobject定义及介绍
  • java命名空间java.io类objectoutputstream的类成员方法: writeobject定义及介绍
  • java命名空间java.sql接口sqloutput的类成员方法: writeobject定义及介绍
  • java命名空间javax.sql.rowset.serial类sqloutputimpl的类成员方法: writeobject定义及介绍


  • 站内导航:


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

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

    浙ICP备11055608号-3