В Java есть некоторый существующий код в функции A, который возвращает OutputStream, но я бы хотел, чтобы он возвращал PipedOutputStream, который я могу использовать с PipedInputStream следующим образом:
this.inputStream = new PipedInputStream(this.outputStream);
Работает ли приведение OutputStream к PipedInputStream, или мне нужно начать с нового нового PipedOutputStream и повторить всю логику там?
Больше кода:
мой PipedInputStream будет передавать данные в s3 следующим образом:
tm.upload(bucketName, objectKey, this.inputStream, objectMetadata);
(tm - это TransferManager)
и PipedOutputStream будет с Writer, который записывает в файлы.
OutputStream out = (encryptionKeyId != null) ?
pgpService.buildPgpOutputStream(this.outputStream, encryptionKeyId) :
this.outputStream;
return toBufferedWriter(out);
Итак, в переключателе выше, когда out
равно this.outputStream;
, он работает нормально. потому что это PipedOutputStream. но pgpService.buildPgpOutputStream(this.outputStream, encryptionKeyId)
возвращает OutputStream, а не Piped, поэтому не уверен, что делать.