Maison >Java >javaDidacticiel >Comment puis-je facilement copier un InputStream vers un OutputStream en Java ?

Comment puis-je facilement copier un InputStream vers un OutputStream en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-17 15:37:16207parcourir

How Can I Easily Copy an InputStream to an OutputStream in Java?

Écrire facilement le contenu d'un InputStream dans un OutputStream en Java

Copier le contenu d'un InputStream vers un OutputStream en Java est une tâche courante. Bien qu'il soit possible d'écrire du code de tampon d'octets, il peut exister une solution plus simple.

Considérez un scénario dans lequel vous avez un InputStream en entrée et un OutputStream en sortie. Le code suivant illustre l'approche conventionnelle :

byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
    out.write(buffer, 0, len);
    len = in.read(buffer);
}

Présentation d'Apache IOUtils

Comme WMR l'a suggéré, la classe org.apache.commons.io.IOUtils d'Apache fournit une méthode appelée copy(InputStream, OutputStream ) qui simplifie cette tâche.

En utilisant IOUtils, le code devient plus concis et simple :

IOUtils.copy(in, out);
in.close();
out.close();

Bien que l'utilisation de IOUtils soit recommandée, si vous avez des raisons spécifiques de l'éviter, vous pouvez implémenter votre propre code de tampon d'octets personnalisé, comme indiqué dans l'extrait de code d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn