我试图加密一个字符串,并使用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