【问题标题】:How to serialize and deserialize a CipherInputStream object如何序列化和反序列化 CipherInputStream 对象
【发布时间】:2013-07-25 09:51:13
【问题描述】:

我在序列化 cipherinputstream 对象时遇到问题。每当我尝试这样做时,我总是会遇到这个异常,这是我的代码的 sn-p

public class Crypto implements java.io.Serializable
{

public Crypto(String filename)
{

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
SecretKeySpec secretkey = new SecretKeySpec(key(), "AES");
cipher.init(Cipher.ENCRYPT_MODE, secretkey);
CipherInputStream cipt = new CipherInputStream(new FileInputStream(new File(filename)), cipher)

ByteArrayOutputStream baos = new ByteArrayOutputStream();

  ObjectOutputStream obj = null;

           try
           {
                obj =   new ObjectOutputStream(baos);
                obj.writeObject(cipt);
                byte[] bv = baos.toByteArray();
                System.out.println(bv);

           }
           catch(Exception b)
           {
           b.printStackTrace();
           }
           finally
           {
            obj.close();
            baos.close();
           }
      }
     }

例外:

java.io.NotSerializableException: javax.crypto.CipherInputStream.
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)

谁能帮我做这件事。我的目标是将 cipherinputstream 对象转换为字节或字节数组。

【问题讨论】:

  • 你实现可序列化了吗?
  • 你想达到什么目的?你想自己写密码还是写对象CipherInputStream
  • 对象 CipherInputStream
  • @shuhail,怎么样?不明白
  • U 试图序列化的对象的类...

标签: java exception serialization


【解决方案1】:

可能你不会实现可序列化标记类。假设 A 类是 U 需要序列化的类,那么:

class A implements serializable {

  //class variables and methods


}

【讨论】:

    最近更新 更多