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.