Java - Datei in InputStream konvertieren

Java - Datei in InputStream konvertieren

1. Überblick

In diesem kurzen Tutorial zeigen wir, wie manconvert a File to an InputStream macht - zuerst mit einfachem Java und dann mit Guava und der Apache Commons IO-Bibliothek.

Dieser Artikel ist Teil vonthe “Java – Back to Basic” series hier am Beispiel.

Weitere Lektüre:

Java Scanner

Lernprogramm und Beispiele für Java Scanner - Scannen Sie einen String, eine Datei oder die Konsole, überprüfen Sie die Eingabe, suchen oder überspringen Sie Muster.

Read more

Guave - In Datei schreiben, aus Datei lesen

So schreiben Sie in eine Datei und lesen aus einer Datei mithilfe der Guava IO-Unterstützung und -Dienstprogramme.

Read more

Java Byte Array zu InputStream

So konvertieren Sie ein Byte [] mit Java oder Guava in einen InputStream.

Read more

2. Konvertieren mit Java

Wir könnenIO package von Java verwenden, umFile in verschiedeneInputStreams umzuwandeln.

2.1. FileInputStream

Beginnen wir mit dem ersten undsimplest one – using a 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 einen anderen an, in dem wiruse DataInputStream to read binary or primitive data from a file können:

@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

Schauen wir uns zum Schluss auch an, wie manuse SequenceInputStream to concatenate input stream of two files to a single InputStream macht:

@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 mit Guave

Weiter - sehen wir unsthe Guava solution mit einem VermittlerByteSource 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 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 simple and clean solutions for opening a stream from a Java file.

5. Fazit

In diesem Artikel haben wir verschiedene Möglichkeiten untersucht, wie SieFile inInputStream konvertieren können, indem Sie verschiedene Bibliotheken verwenden. Die Implementierung all dieser Beispiele und Codefragmente finden Sie inover on GitHub - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.