1

J'écris des données dans un PipedOutputStream que j'ai connecté à un PipedInputStream que je transmets à une API tierce. L'écriture dans PipedOutputStream est effectuée de manière asynchrone sur un autre thread.Bubble IOException de PipedOutputStream à PipedInputStream

Lorsqu'un IOException est lancé par le PipedOutputStream, quel est l'effet sur le PipedInputStream correspondant? Est-ce qu'il lance aussi une exception? Je pense que c'est le comportement désiré parce que le contenu que l'InputStream devrait fournir n'est pas complet.

Si ce n'est pas le cas, comment puis-je simuler cet effet?

Remarque: Le PipedOutputStream est enveloppé dans l'instruction try-with-resources qui autoclose le OutputStream.

Répondre

0

Vous pouvez obtenir IOException sur PipedOutputStream uniquement si vous fermez PipedInputStream connecté. Ce qui signifie qu'à ce moment-là, vous ne pouvez plus lire depuis l'entrée. Il n'y a aucun moyen de délivrer une IOException artificielle.

+0

La [documentation] (http://docs.oracle.com/javase/7/docs/api/java/io/PipedOutputStream.html) n'est pas claire à ce sujet. Il dit que 'write' lance une _IOException - si le tuyau est brisé, non connecté, fermé, ** ou si une erreur d'E/S se produit **. Cette dernière partie me fait penser que je dois me protéger. – neXus