Как заставить CipherOutputStream завершить шифрование, но оставить базовый поток открытым?

У меня есть CipherOutputStream, поддерживаемый другим OutputStream. После того, как я закончу записывать все данные, которые мне нужно зашифровывать, в CipherOutputStream, мне нужно добавить некоторые незашифрованные данные.

В документации для CipherOutputStream говорится, что вызов flush () не приведет к принудительному выводу последнего блока из шифратора; для этого мне нужно вызвать close () . Но close () также закрывает базовый OutputStream, в который мне все еще нужно написать больше.

Как я могу вывести последний блок из шифровальщика, не закрывая поток? Нужно ли мне писать собственный NonClosingCipherOutputStream?

8
задан 27 March 2011 в 12:07
поделиться