你的v是vector类型的,如果你要system.out.println必须将其转换成String类型的
如果你System.out.println(""+ v)也会自动调用Vector.toString()方法,一样的

解决方案 »

  1.   

    String是可以序列化的,
    Vector是不可以序列化的,
    OK?
      

  2.   

    你的v是vector类型的,如果你要system.out.println必须将其转换成String类型的
    如果你System.out.println(""+ v)也会自动调用Vector.toString()方法,一样的
      

  3.   

    to:plato(天天) 
    那我该怎么办呀
      

  4.   

    to:plato(天天) 
    那我该怎么办呀
    有哪些类是可序列化的呀,200分都给你了
      

  5.   

    to:plato(天天) 
    jdk1.3 doc中说Vector是可序列化的啊。??public class Vector
    extends AbstractList
    implements List, Cloneable, Serializable
      

  6.   

    robbin不要误人子弟,人家说的是writeObject(),不是println(),println()是可以正常调用的
    to swain:你先把v.size()写进去,然后一个接一个的写v.elementAt(i)就行了
      

  7.   

    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 接口。 
      

  8.   

    可以写的,我怀疑你读出是没有类型转换
    import java.io.*;
    import java.util.*;public class WriteTest {
       public static void main(String[] args)  {
           Vector v = new Vector();
           v.add("a");
           v.add("b");
           v.add("c");
    try{
        FileOutputStream ostream = new FileOutputStream("t.tmp");
        ObjectOutputStream p = new ObjectOutputStream(ostream);
        p.writeObject(v);
               p.flush();
        ostream.close();
    }catch(Exception e){
        e.printStackTrace();
    }
        }
    }
    读方法如下
    import java.io.*;
    import java.util.*;public class Test {
       public static void main(String[] args)  {
          try{
    FileInputStream istream = new FileInputStream("t.tmp");
    ObjectInputStream p = new ObjectInputStream(istream); Vector v = (Vector)p.readObject();
    System.out.println(v);
    istream.close();
          }catch(Exception e){
    e.printStackTrace();
          }
       }
    }
      

  9.   

    to: swain
    把问题描述完整嘛。把你的程序贴出来,不然怎么搞得清楚?
      

  10.   

    各位呀,我测试了这么久,还是不行,我将你们的程序放在应用里面都可以用
    但一道我的web里面就不行了,这是为什么呀,代码如下:
    applet:
      void jButton1_actionPerformed(ActionEvent e) {
        try{
          URL url=new URL(getDocumentBase(),"/servlet/pack.Servlet_test");
          URLConnection con=url.openConnection();
          con.setUseCaches(true);
          con.setDoOutput(true);
          con.setDoInput(true);
          ByteArrayOutputStream byteout=new ByteArrayOutputStream();
          DataOutputStream out=new DataOutputStream(byteout);
          out.writeUTF(this.jTextField1.getText());
          out.flush();
          byte buf[]=byteout.toByteArray();
          con.setRequestProperty("Content-type","application/octest-stream");
          con.setRequestProperty("Content-length",""+buf.length);
          DataOutputStream dataout=new DataOutputStream(con.getOutputStream());
          dataout.write(buf);
          dataout.flush();
          dataout.close();
          ObjectInputStream in=new ObjectInputStream(con.getInputStream());
          Vector v=(Vector)in.readObject();
          String str=v.toString();
    //      String str=in.readObject().toString();
          this.jTextArea1.setText(str);
          in.close();
        }catch(Exception ee){
          System.out.println("applet:"+ee.getMessage());
        }
      }servlet:
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        try{
          DataInputStream in=new DataInputStream(request.getInputStream());
          String response_str=in.readUTF();
          System.out.println(response_str);      
          response.setContentType("application/octest-stream");
                ObjectOutputStream servletout=new ObjectOutputStream(response.getOutputStream());
          System.out.println(v.toString());
          servletout.writeObject(v);
          servletout.flush();
          servletout.close();
        }catch(Exception e){
          System.out.println("servlet:"+e.getMessage());
        }
      }  /**Process the HTTP Post request*/
      public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request,response);
      }
      

  11.   

      Vector v=new Vector();
      public void init() throws ServletException {
        v.add("a");
        v.add("a");
        v.add("a");
        v.add("a");
      }
      

  12.   

    是,写vector时请用下面的方法,这个难题曾花了本人好几天光阴,不知道,你的两百分能不能
    拿到
    /**
     * 发送远程方法调用请求,并返回结果。
     * Creation date: (2001-4-14 16:28:16)
     * @return java.lang.Object 远程方法调用结果
     */
    public Object invoke()
    {
    System.out.println("invoke!");
    ObjectInputStream in= null;
    //ObjectOutputStream out= null;
    Vector v= new Vector();
    v.addElement(sJNDIName);
    v.addElement(sMethodName);
    v.addElement(cParamType);
    v.addElement(oParam);
    String sServletURL; //远程调用服务器端代理
    sServletURL= com.powerise.power.util.CRMEJBClientProperties.getServletURL();
    System.out.println("ServletURL:" + sServletURL);
    try
    {
    URL url= new URL(sServletURL);
    URLConnection con= url.openConnection();
    con.setUseCaches(false);
    con.setDoOutput(true);
    con.setDoInput(true); ByteArrayOutputStream byteout= new ByteArrayOutputStream();
    ObjectOutputStream out= new ObjectOutputStream(byteout);
    out.writeObject(v);
    out.flush(); byte buf[]= byteout.toByteArray();
    con.setRequestProperty("Content-type", "application/octet-stream");
    con.setRequestProperty("Content-length", "" + buf.length);
    DataOutputStream dataOut= new DataOutputStream(con.getOutputStream());
    dataOut.write(buf);
    dataOut.flush();
    dataOut.close(); in= new ObjectInputStream(con.getInputStream());
    Object o= in.readObject();
    in.close();
    return o;
    }
    catch (Exception e)
    {
    System.out.println(e);
    return null;
    }
    }