Un OutputStream
est l'un où de l'écriture de données. Si certains module expose une OutputStream
, on s'attend à ce qu'il y a quelque chose à l'autre extrémité qui est de la lecture.
Quelque chose qui expose une InputStream
sur l'autre main est ce qui indique que vous aurez besoin d'écouter ce flux, et il y aura des données que vous pouvez lire.
Il est ainsi possible de connecter un InputStream
d'un OutputStream
InputStream----read---> intermediateBytes[n] ----write----> OutputStream
Comme quelqu'un dessus décrite, c'est ce que l' copy()
méthode de IOUtils vous permet de le faire. Il n'est pas logique d'aller dans l'autre sens... j'espère que cela a un sens
Mise à JOUR:
Bien entendu, plus j'y pense, plus je peux voir comment cela qui serait en fait une exigence. Je sais que certains commentaires mentionnés Piped
input/ouput cours d'eau, mais il y a une autre possibilité.
Si le flux de sortie qui est exposée est une ByteArrayOutputStream
, alors vous pouvez toujours obtenir la totalité du contenu par l'appel de la toByteArray()
méthode. Ensuite, vous pouvez créer un flux d'entrée wrapper en utilisant l' ByteArrayInputStream
sous-classe. Ces deux pseudo-flux, ils fondamentalement juste envelopper d'un tableau d'octets. En utilisant le flux de cette façon, par conséquent, il est techniquement possible, mais pour moi, c'est toujours très étrange...