0
我想写使用CipherOutputStream加密的文件,CipherOutputStream创建0字节的文件
PFB的代码序列化
public class SerializeDemo implements Serializable{
private static final long serialVersionUID = -7128734972070518012L;
private static SerializeDemo INSTANCE = null;
private ArrayList <SerializeItem> item;
public static void serialize() {
INSTANCE = new SerializeDemo();
ArrayList <SerializeItem> list = new ArrayList <SerializeItem>();
SerializeItem item = new SerializeItem();
item.setV1("DD");
item.setV2("D");
list.add(item);
INSTANCE.setItem(list);
try {
Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
c.init(Cipher.ENCRYPT_MODE, getKeyPair().getPublic());
CipherOutputStream cos = new CipherOutputStream(new FileOutputStream("D:\\abc"), c);
ObjectOutputStream os = new ObjectOutputStream(cos);
os.writeObject(INSTANCE);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Serialized");
}
}
PFB我SerializeItem类定义
public class SerializeItem implements Serializable{
private static final long serialVersionUID = 850426811900126363L;
private String V1 = null;
private String V2 = null;
//getter setters for the bean file
}
如果我添加此类序列化中有2个以上的字符串成员变量停止,并且我得到一个0字节的文件。请建议
即使没有写入对象,甚至没有'CipherOutputStream',除非出现异常,否则无法使用此代码获取零长度文件。它以前如何?注意静态'INSTANCE'的点离开了我。 – EJP
运行代码时没有错误,如果我只给出2个字段,那么我会得到一个非零长度的文件。静态实例用于实现单例模式 –
您发布的代码中只有两个字段。我们是否理解没有发布非工作版本? – EJP