Java - Tukar Fail ke InputStream

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan menunjukkan cara mengubah Fail menjadi InputStream - pertama menggunakan Java biasa dan kemudian Guava dan perpustakaan Apache Commons IO.

Artikel ini adalah sebahagian daripada siri " Java - Back to Basic " di Baeldung.

2. Tukar Menggunakan Java

Kita dapat menggunakan paket IO java untuk menukar Fail menjadi InputStream yang berbeza .

2.1. FailInputStream

Mari mulakan dengan yang pertama dan paling mudah - menggunakan FileInputStream :

@Test public void givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect() throws IOException { File initialFile = new File("src/main/resources/sample.txt"); InputStream targetStream = new FileInputStream(initialFile); }

2.2. DataInputStream

Mari kita lihat yang lain, di mana kita dapat menggunakan DataInputStream untuk membaca data binari atau primitif dari fail :

@Test public final void givenUsingPlainJava_whenConvertingFileToDataInputStream_thenCorrect() throws IOException { final File initialFile = new File("src/test/resources/sample.txt"); final InputStream targetStream = new DataInputStream(new FileInputStream(initialFile)); }

2.3. SequenceInputStream

Akhirnya, mari kita lihat juga bagaimana menggunakan SequenceInputStream untuk menggabungkan aliran input dua fail ke satu InputStream :

@Test public final void givenUsingPlainJava_whenConvertingFileToSequenceInputStream_thenCorrect() throws IOException { final File initialFile = new File("src/test/resources/sample.txt"); final File anotherFile = new File("src/test/resources/anothersample.txt"); final InputStream targetStream = new FileInputStream(initialFile); final InputStream anotherTargetStream = new FileInputStream(anotherFile); InputStream sequenceTargetStream = new SequenceInputStream(targetStream, anotherTargetStream); }

Perhatikan bahawa kami tidak menutup aliran yang dihasilkan dalam contoh ini untuk dibaca.

3. Tukarkan Menggunakan Jambu Batu

Seterusnya - mari kita lihat penyelesaian Jambu Batu , menggunakan ByteSource perantara :

@Test public void givenUsingGuava_whenConvertingFileToInputStream_thenCorrect() throws IOException { File initialFile = new File("src/main/resources/sample.txt"); InputStream targetStream = Files.asByteSource(initialFile).openStream(); }

4. Tukar Menggunakan Commons IO

Akhirnya - mari kita lihat penyelesaian menggunakan Apache Commons IO:

@Test public void givenUsingCommonsIO_whenConvertingFileToInputStream_thenCorrect() throws IOException { File initialFile = new File("src/main/resources/sample.txt"); InputStream targetStream = FileUtils.openInputStream(initialFile); }

Dan di sana anda memilikinya - 3 penyelesaian mudah dan bersih untuk membuka aliran dari fail Java .

5. Kesimpulan

Dalam artikel ini, kami meneroka pelbagai cara bagaimana menukar Fail ke InputStream dengan menggunakan perpustakaan yang berbeza.

Pelaksanaan semua contoh dan coretan kod ini dapat dilihat di GitHub - ini adalah projek berasaskan Maven, jadi mudah untuk diimport dan dijalankan sebagaimana adanya.