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.