Java - Konverter fil til InputStream
1. Oversikt
I denne raske opplæringen skal vi vise hvordan du gjør det konvertere en Fil til en InputStream- Først bruker du vanlig Java og deretter Guava og Apache Commons IO-biblioteket.
Denne artikkelen er en del avJava - Tilbake til Basic”-Serien her på Baeldung.
2. Konverter ved hjelp av Java
Vi kan bruke IO-pakken med java til å konvertere en Fil til forskjellige InputStreams.
2.1. FileInputStream
La oss starte med den første og enkleste - ved hjelp av en FileInputStream:
@Test offentlig ugyldighet givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect () kaster IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = ny FileInputStream (initialFile); }
2.2. DataInputStream
La oss se på en annen, der vi kan bruk DataInputStream for å lese binære eller primitive data fra en fil:
@Test offentlig endelig ugyldighet 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
Til slutt, la oss også se på hvordan bruk SequenceInputStream for å sammenkoble inngangsstrømmen av to filer til en enkelt InputStream:
@Test offentlig endelig ugyldighet 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); }
Merk at vi ikke lukker den resulterende strømmen i disse eksemplene for lesbarhet.
3. Konverter ved hjelp av Guava
Neste - la oss se Guava-løsningen, bruker et mellomledd ByteSource:
@Test offentlig ugyldighet givenUsingGuava_whenConvertingFileToInputStream_thenCorrect () kaster IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = Files.asByteSource (initialFile) .openStream (); }
4. Konverter ved hjelp av Commons IO
Til slutt - la oss se på en løsning ved hjelp av Apache Commons IO:
@Test offentlig ugyldighet 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 for å åpne en stream fra en Java-fil.
5. Konklusjon
I denne artikkelen undersøkte vi forskjellige måter å konvertere en Fil til InputStream ved å bruke forskjellige biblioteker.
Implementeringen av alle disse eksemplene og kodebitene finner du på GitHub - dette er et Maven-basert prosjekt, så det skal være enkelt å importere og kjøre som det er.