我試圖加密一個字符串,並使用CipherOutputStream
存儲加密的字節在字節原始數組中使用ByteArrayOutputStream
支持,但ByteArrayOutputStream
對象的大小保持爲零,並且在將某些內容寫入CipherOutputStream
對象後,它不會認可任何字節。這是代碼。爲什麼CipherOutputStream不能寫入ByteArrayOutputStream?
ByteArrayOutputStream out = new ByteArrayOutputStream();
CipherOutputStream cos = new CipherOutputStream(out, c);
PrintWriter pw = new PrintWriter(cos);
pw.println("Write something");
cos.flush();
out.flush();
System.out.println(out.size());
pw.close();
所以我嘗試用下面的代碼改變ByteArrayOutputStream
到FileOutputStream
做一個對比。事實證明,加密的字節被寫入目標文件。有沒有人有任何想法,爲什麼我不能在這裏使用ByteArrayOutputStream
?你能提出一個解決方案嗎?
FileOutputStream out = new FileOutputStream("/path/encrypted.txt");
CipherOutputStream cos = new CipherOutputStream(out, c);
PrintWriter pw = new PrintWriter(cos);
pw.println("Write something");
pw.close();
即使我刷新,它仍然是空的。最初,我不使用`PrintWriter`,而是直接將它寫入`CipherOutputStream`,這也是相同的。這就是爲什麼我很沮喪。 – gigadot 2011-01-14 16:53:43