Java - prevod súboru na InputStream
1. Prehľad
V tomto rýchlom výučbe si ukážeme, ako na to konvertovať a Súbor do an InputStream- najskôr pomocou obyčajnej Javy a potom Guavy a knižnice Apache Commons IO.
Tento článok je súčasťou „Java - späť na základné”Séria tu na Baeldungu.
2. Konverzia pomocou Javy
Môžeme použiť IO balík java na prevod a Súbor na rôzne InputStreams.
2.1. FileInputStream
Začnime prvým a najjednoduchší - pomocou a FileInputStream:
@ Test public void givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect () vyvolá IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = nový FileInputStream (initialFile); }
2.2. DataInputStream
Pozrime sa na inú, kde môžeme použitie DataInputStream na čítanie binárnych alebo primitívnych údajov zo súboru:
@Test public final void givenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect () vyvolá IOException {final File initialFile = new File ("src / test / resources / sample.txt"); konečný InputStream targetStream = nový DataInputStream (nový FileInputStream (initialFile)); }
2.3. SequenceInputStream
Nakoniec sa pozrime aj na to, ako na to použitie SequenceInputStream spojiť vstupný prúd dvoch súborov do jedného InputStream:
@Test public final void givenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect () hodí IOException {final File initialFile = new File ("src / test / resources / sample.txt"); konečný súbor anotherFile = nový súbor ("src / test / resources / anothersample.txt"); konečný InputStream targetStream = nový FileInputStream (initialFile); konečný InputStream anotherTargetStream = nový FileInputStream (anotherFile); InputStream sequenceTargetStream = nový SequenceInputStream (targetStream, anotherTargetStream); }
Upozorňujeme, že výsledný prúd v týchto príkladoch kvôli čitateľnosti neuzatvárame.
3. Konvertujte pomocou Guavy
Ďalej - pozrime sa riešenie Guavapomocou sprostredkovateľa ByteSource:
@ Test public void givenUsingGuava_whenConvertingFileToInputStream_thenCorrect () vyvolá IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = Files.asByteSource (initialFile) .openStream (); }
4. Prevod pomocou Commons IO
Na záver - pozrime sa na riešenie pomocou Apache Commons IO:
@ Test public void givenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect () vyvolá IOException {File initialFile = new File ("src / main / resources / sample.txt"); InputStream targetStream = FileUtils.openInputStream (initialFile); }
A tu to máte - 3 jednoduché a čisté riešenia na otvorenie streamu zo súboru Java.
5. Záver
V tomto článku sme skúmali rôzne spôsoby, ako previesť a Súbor do InputStream pomocou rôznych knižníc.
Implementáciu všetkých týchto príkladov a útržkov kódu nájdete na serveri GitHub - jedná sa o projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť tak, ako je.