Java - Konvertera fil till InputStream

1. Översikt

I den här snabbhandledningen ska vi visa hur man konverterar en fil till en InputStream - först med vanlig Java och sedan Guava och Apache Commons IO-biblioteket.

Den här artikeln är en del av " Java - Back to Basic " -serien här på Baeldung.

2. Konvertera med Java

Vi kan använda IO-paketet med java för att konvertera en fil till olika InputStream .

2.1. FileInputStream

Låt oss börja med den första och enklaste - med en 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

Låt oss titta på en annan, där vi kan använda DataInputStream för att läsa binära eller primitiva data från en fil :

@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

Slutligen, låt oss också titta på hur man använder SequenceInputStream för att sammanfoga ingångsströmmen för två filer till en enda 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); }

Observera att vi inte stänger den resulterande strömmen i dessa exempel för läsbarhet.

3. Konvertera med Guava

Nästa - låt oss se Guava-lösningen med hjälp av en mellanhand ByteSource :

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

4. Konvertera med Commons IO

Slutligen - låt oss titta på en lösning med hjälp av 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); }

Och där har du det - 3 enkla och rena lösningar för att öppna en ström från en Java-fil .

5. Sammanfattning

I den här artikeln undersökte vi olika sätt att konvertera en fil till InputStream med hjälp av olika bibliotek.

Implementeringen av alla dessa exempel och kodavsnitt finns på GitHub - detta är ett Maven-baserat projekt, så det borde vara enkelt att importera och köra som det är.