Java - Konverter fil til InputStream

1. Oversigt

I denne hurtige vejledning skal vi vise, hvordan man gør det konvertere en Fil til en InputStream- først ved hjælp af almindelig Java og derefter Guava og Apache Commons IO-biblioteket.

Denne artikel er en del af "Java - Tilbage til Basic”-Serien her på Baeldung.

2. Konverter ved hjælp af Java

Vi kan bruge IO-pakken med java til at konvertere en Fil til forskellige InputStreams.

2.1. FileInputStream

Lad os starte med den første og enkleste - ved hjælp af en FileInputStream:

@Test offentlig ugyldighed givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect () kaster IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = ny FileInputStream (initialFile); }

2.2. DataInputStream

Lad os se på en anden, hvor vi kan brug DataInputStream for at læse binære eller primitive data fra en fil:

@Test offentlig endelig ugyldighed givenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect () kaster IOException {final File initialFile = ny fil ("src / test / resources / sample.txt"); endelig InputStream targetStream = ny DataInputStream (ny FileInputStream (initialFile)); }

2.3. SequenceInputStream

Lad os endelig også se på, hvordan man gør det brug SequenceInputStream at sammenkæde inputstrøm af to filer til en enkelt InputStream:

@Test offentlig endelig ugyldighed givenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect () kaster IOException {final File initialFile = ny fil ("src / test / resources / sample.txt"); endelig fil anotherFile = ny fil ("src / test / resources / anothersample.txt"); endelig InputStream targetStream = ny FileInputStream (initialFile); endelig InputStream anotherTargetStream = ny FileInputStream (anotherFile); InputStream sequenceTargetStream = ny SequenceInputStream (targetStream, anotherTargetStream); }

Bemærk, at vi ikke lukker den resulterende strøm i disse eksempler for læsbarhed.

3. Konverter ved hjælp af Guava

Næste - lad os se Guava-løsningenved hjælp af en mellemmand ByteSource:

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

4. Konverter ved hjælp af Commons IO

Endelig - lad os se på en løsning ved hjælp af Apache Commons IO:

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

Og der har du det - 3 enkle og rene løsninger til åbning af en stream fra en Java-fil.

5. Konklusion

I denne artikel undersøgte vi forskellige måder på, hvordan man konverterer en Fil til InputStream ved hjælp af forskellige biblioteker.

Implementeringen af ​​alle disse eksempler og kodestykker kan findes på GitHub - dette er et Maven-baseret projekt, så det skal være let at importere og køre som det er.