不是,是READOBJECT的时候报错:EOF

解决方案 »

  1.   

    不知道楼主什么意思,
    str.getByte();没有这个方法应该是
    str.getBytes();
      

  2.   

    对,是str.getBytes(),是我这里写错了,程序里是写的对的。
    其他地方绝对没有笔误.]to llgui:
    你肯定是没有改动1,2两处,我是说改了就出错了,麻烦你再试一次。
      

  3.   

    我想其中应该有汉字之类的字符吧?
    请注意char和byte 的区别!!!!!
      

  4.   

    try{
                String testObject = "你快点给我分,我要一百,不算多";
                ByteArrayOutputStream mem_out = new ByteArrayOutputStream();
                ObjectOutputStream obj_out = new ObjectOutputStream(mem_out);            obj_out.writeObject(testObject);
                /*1*/byte[] bytes = mem_out.toByteArray();
                long length = bytes.length;
                String myBase64 = new sun.misc.BASE64Encoder().encode(bytes);
                obj_out.close();
                mem_out.close();            /*2*/
                byte[] newBytes = new sun.misc.BASE64Decoder().decodeBuffer(myBase64);
                
                ByteArrayInputStream mem_in = new ByteArrayInputStream(newBytes);            ObjectInputStream obj_in = new ObjectInputStream(mem_in);
                Object myResult = obj_in.readObject();            System.out.println(myResult.getClass().getName());
                System.out.println(myResult);
            }catch(Exception ex)
            {
                ex.printStackTrace();
            }console:
    java.lang.String
    你快点给我分,我要一百,不算多
      

  5.   

    谢谢你的答复,不过你的那个sun.misc.BASE64Decoder是不是要下载啊?为什么要用那个啊?
    你回答一下,我赠送给你200分
      

  6.   

    不用下载,jdk1.4 有,你直接用就行,我一百就满足了。
      

  7.   

    sun.* 开头的jdk是sun公司没有公司承诺在后续的jdk版本是必段会支持它们,但java.*,javax.*的jdk的承诺是后续的jdk版本都能用。