En Java, vous pouvez parfois avoir besoin d'un moyen transparent pour écrire le contenu d'un InputStream dans un OutputStream. Étonnamment, il peut être difficile de trouver une solution simple à cette tâche. Bien que l'implémentation manuelle du code de tampon d'octets soit gérable, il peut exister une approche plus élégante qui échappe tout simplement à votre attention.
Considérons un scénario avec un InputStream nommé « in » et un OutputStream nommé « out ». Pour transférer le contenu efficacement, vous pouvez instinctivement écrire un code similaire à celui-ci :
byte[] buffer = new byte[1024]; int len = in.read(buffer); while (len != -1) { out.write(buffer, 0, len); len = in.read(buffer); }
Cependant, il existe un moyen plus concis d'obtenir cette fonctionnalité, comme suggéré par WMR. En tirant parti de org.apache.commons.io.IOUtils d'Apache, vous pouvez utiliser la méthode « copy(InputStream, OutputStream) », qui gère sans effort la tâche de transfert pour vous.
Avec cette méthode, votre code devient incroyablement succinct :
InputStream in; OutputStream out; IOUtils.copy(in, out); in.close(); out.close();
Fini la gestion laborieuse des tampons, juste une seule ligne qui s'occupe de tout. Et pour répondre à votre préoccupation, il ne semble y avoir aucune raison impérieuse d'éviter d'utiliser IOUtils pour une tâche aussi simple. Son inclusion dans votre base de code peut grandement simplifier vos opérations de transfert de données.
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!