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.
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.
Java Byte Array zu InputStream
So konvertieren Sie ein Byte [] mit Java oder Guava in einen InputStream.
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.