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