Я пытаюсь зашифровать строку и сохранить зашифрованные байты в примитивном массиве байтов, используя CipherOutputStream
, который поддерживается ByteArrayOutputStream
, но размер объекта ByteArrayOutputStream
остается нулевым и не содержит никаких байтов после чего-либо записано в CipherOutputStream
объект. Вот код.
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();