Java - Convertir le fichier en InputStream

1. Vue d'ensemble

Dans ce rapide tutoriel, nous allons montrer comment convertir un fichier en InputStream - d'abord en utilisant Java brut, puis Guava et la bibliothèque Apache Commons IO.

Cet article fait partie de la série « Java - Back to Basic » ici sur Baeldung.

2. Convertir à l'aide de Java

Nous pouvons utiliser le package IO de java pour convertir un fichier en différents InputStream .

2.1. FileInputStream

Commençons par le premier et le plus simple - en utilisant un FileInputStream :

@Test public void givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect() throws IOException { File initialFile = new File("src/main/resources/sample.txt"); InputStream targetStream = new FileInputStream(initialFile); }

2.2. DataInputStream

Regardons un autre, où nous pouvons utiliser DataInputStream pour lire des données binaires ou primitives à partir d'un fichier :

@Test public final void givenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect() throws IOException { final File initialFile = new File("src/test/resources/sample.txt"); final InputStream targetStream = new DataInputStream(new FileInputStream(initialFile)); }

2.3. SequenceInputStream

Enfin, voyons également comment utiliser SequenceInputStream pour concaténer le flux d'entrée de deux fichiers en un seul InputStream :

@Test public final void givenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect() throws IOException { final File initialFile = new File("src/test/resources/sample.txt"); final File anotherFile = new File("src/test/resources/anothersample.txt"); final InputStream targetStream = new FileInputStream(initialFile); final InputStream anotherTargetStream = new FileInputStream(anotherFile); InputStream sequenceTargetStream = new SequenceInputStream(targetStream, anotherTargetStream); }

Notez que nous ne fermons pas le flux résultant dans ces exemples pour plus de lisibilité.

3. Convertir à l'aide de la goyave

Ensuite, voyons la solution Guava , en utilisant un ByteSource intermédiaire :

@Test public void givenUsingGuava_whenConvertingFileToInputStream_thenCorrect() throws IOException { File initialFile = new File("src/main/resources/sample.txt"); InputStream targetStream = Files.asByteSource(initialFile).openStream(); }

4. Conversion à l'aide de Commons IO

Enfin, examinons une solution utilisant Apache Commons IO:

@Test public void givenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect() throws IOException { File initialFile = new File("src/main/resources/sample.txt"); InputStream targetStream = FileUtils.openInputStream(initialFile); }

Et voilà - 3 solutions simples et propres pour ouvrir un flux à partir d'un fichier Java .

5. Conclusion

Dans cet article, nous avons exploré différentes manières de convertir un fichier en InputStream à l'aide de différentes bibliothèques.

L'implémentation de tous ces exemples et extraits de code peut être trouvée sur GitHub - il s'agit d'un projet basé sur Maven, il devrait donc être facile à importer et à exécuter tel quel.