Java - Fájl konvertálása InputStream-re

1. Áttekintés

Ebben a gyors bemutatóban megmutatjuk, hogyan kell átalakítani a File egy InputStream- először a sima Java, majd a Guava és az Apache Commons IO könyvtár használatával.

Ez a cikk a „Java - Vissza az alapokhoz”Sorozat itt, a Baeldungon.

2. Konvertálás Java használatával

Használhatjuk a java IO csomagját a File hogy más InputStreams.

2.1. FileInputStream

Kezdjük az elsővel és a legegyszerűbb - az a használatával FileInputStream:

@Test public void givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect () dobja az IOException {File initialFile = új fájlt ("src / main / resources / sample.txt"); InputStream targetStream = új FileInputStream (initialFile); }

2.2. DataInputStream

Nézzünk meg egy másikat, ahol lehet használat DataInputStream hogy bináris vagy primitív adatokat olvasson egy fájlból:

@Test public final void givenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect () dobja az IOException {final File initialFile = új fájlt ("src / test / resources / sample.txt"); végső InputStream targetStream = új DataInputStream (új FileInputStream (initialFile)); }

2.3. SequenceInputStream

Végül nézzük meg azt is, hogyan kell használat SequenceInputStream két fájl bemeneti adatfolyamának összefűzéséhez egyetlen InputStream:

@Test public final void givenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect () dobja az IOException {final File initialFile = új fájlt ("src / test / resources / sample.txt"); final File anotherFile = new File ("src / test / resources / anothersample.txt"); végső InputStream targetStream = új FileInputStream (initialFile); végső InputStream anotherTargetStream = új FileInputStream (anotherFile); InputStream sequenceTargetStream = új SequenceInputStream (targetStream, anotherTargetStream); }

Ne feledje, hogy az olvashatóság érdekében nem zárjuk le a kapott adatfolyamot ezekben a példákban.

3. Konvertálás Guava használatával

Következő - nézzük meg a guava-megoldás, egy közvetítő használatával ByteSource:

@Test public void givenUsingGuava_whenConvertingFileToInputStream_thenCorrect () dobja az IOException {File initialFile = új fájlt ("src / main / resources / sample.txt"); InputStream targetStream = Files.asByteSource (initialFile) .openStream (); }

4. Konvertálás a Commons IO használatával

Végül - nézzünk meg egy megoldást az Apache Commons IO használatával:

@Test public void givenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect () dobja az IOException {File initialFile = új fájl ("src / main / resources / sample.txt"); InputStream targetStream = FileUtils.openInputStream (initialFile); }

És itt van - 3 egyszerű és tiszta megoldás egy adatfolyam megnyitására egy Java fájlból.

5. Következtetés

Ebben a cikkben különféle módszereket tártunk fel a File nak nek InputStream különböző könyvtárak használatával.

Ezeknek a példáknak és kódrészleteknek a megvalósítása megtalálható a GitHub-on - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.