Java - Converteer bestand naar InputStream

1. Overzicht

In deze korte tutorial laten we zien hoe converteer een het dossier aan een InputStream- eerst gewoon Java gebruiken en vervolgens Guava en de Apache Commons IO-bibliotheek.

Dit artikel maakt deel uit van de “Java - Terug naar Basic”Serie hier op Baeldung.

2. Converteren met behulp van Java

We kunnen het IO-pakket van java gebruiken om een het dossier anders InputStreams.

2.1. FileInputStream

Laten we beginnen met de eerste en eenvoudigste - met behulp van een FileInputStream:

@Test openbare leegte gegevenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect () gooit IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = nieuwe FileInputStream (initialFile); }

2.2. DataInputStream

Laten we naar een andere kijken, waar we kunnen gebruik DataInputStream om binaire of primitieve gegevens uit een bestand te lezen:

@Test openbare definitieve ongeldige gegevenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect () gooit IOException {final File initialFile = nieuw bestand ("src / test / resources / sample.txt"); final InputStream targetStream = nieuwe DataInputStream (nieuwe FileInputStream (initialFile)); }

2.3. SequenceInputStream

Laten we tot slot ook kijken hoe gebruik SequenceInputStream om een ​​invoerstroom van twee bestanden samen te voegen tot één InputStream:

@Test openbare definitieve ongeldige gegevenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect () gooit IOException {final File initialFile = nieuw bestand ("src / test / resources / sample.txt"); final File anotherFile = nieuw bestand ("src / test / resources / anothersample.txt"); final InputStream targetStream = nieuwe FileInputStream (initialFile); final InputStream anotherTargetStream = nieuwe FileInputStream (anotherFile); InputStream sequenceTargetStream = nieuwe SequenceInputStream (targetStream, anotherTargetStream); }

Houd er rekening mee dat we de resulterende stream in deze voorbeelden niet sluiten voor leesbaarheid.

3. Converteren met behulp van Guava

Volgende - laten we eens kijken de Guava-oplossing, met behulp van een tussenpersoon ByteSource:

@Test openbare leegte gegevenUsingGuava_whenConvertingFileToInputStream_thenCorrect () gooit IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = Files.asByteSource (initialFile) .openStream (); }

4. Converteren met Commons IO

Laten we tot slot eens kijken naar een oplossing met Apache Commons IO:

@Test openbare leegte gegevenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect () gooit IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = FileUtils.openInputStream (initialFile); }

En daar heb je het - 3 eenvoudige en schone oplossingen voor het openen van een stream vanuit een Java-bestand.

5. Conclusie

In dit artikel hebben we verschillende manieren onderzocht om een het dossier naar InputStream door verschillende bibliotheken te gebruiken.

De implementatie van al deze voorbeelden en codefragmenten is te vinden op GitHub - dit is een op Maven gebaseerd project, dus het moet gemakkelijk te importeren en uit te voeren zijn zoals het is.