Java - Datei in InputStream konvertieren

1. Übersicht

In diesem kurzen Tutorial zeigen wir, wie eine Datei in einen InputStream konvertiert wird - zuerst mit einfachem Java und dann mit Guava und der Apache Commons IO-Bibliothek.

Dieser Artikel ist Teil der Reihe „ Java - Back to Basic “ hier auf Baeldung.

2. Konvertieren Sie mit Java

Wir können das IO-Paket von Java verwenden, um eine Datei in verschiedene InputStreams zu konvertieren .

2.1. FileInputStream

Beginnen wir mit dem ersten und einfachsten - mit einem 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

Schauen wir uns eine andere an, in der wir DataInputStream verwenden können , um binäre oder primitive Daten aus einer Datei zu lesen :

@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

Schließlich wollen wir auch schauen , wie zu verwenden SequenceInputStream zu verketten Eingangsstrom von zwei Dateien in einem einzigen Input :

@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); }

Beachten Sie, dass wir den resultierenden Stream in diesen Beispielen aus Gründen der Lesbarkeit nicht schließen.

3. Konvertieren Sie mit Guave

Als nächstes sehen wir uns die Guava-Lösung mit einer Zwischen- ByteSource an :

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

4. Konvertieren Sie mit Commons IO

Schauen wir uns zum Schluss eine Lösung mit Apache Commons IO an:

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

Und da haben Sie es - 3 einfache und saubere Lösungen zum Öffnen eines Streams aus einer Java-Datei .

5. Schlussfolgerung

In diesem Artikel haben wir verschiedene Möglichkeiten zum Konvertieren einer Datei in InputStream mithilfe verschiedener Bibliotheken untersucht.

Die Implementierung all dieser Beispiele und Codefragmente finden Sie auf GitHub - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.