Java - Konversi File ke InputStream

1. Ikhtisar

Dalam tutorial singkat ini, kami akan menunjukkan cara mengonversi File ke InputStream - pertama menggunakan Java biasa dan kemudian Guava dan pustaka Apache Commons IO.

Artikel ini adalah bagian dari seri “ Java - Kembali ke Dasar ” di Baeldung.

2. Konversi Menggunakan Java

Kita dapat menggunakan paket IO java untuk mengonversi File ke InputStream yang berbeda .

2.1. FileInputStream

Mari kita mulai dengan yang pertama dan paling sederhana - 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 satu sama lain, di mana kita dapat menggunakan DataInputStream untuk membaca data biner atau primitif dari sebuah file :

@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

Terakhir, mari kita lihat juga cara menggunakan SequenceInputStream untuk menggabungkan aliran input dari dua file 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 bahwa kami tidak menutup aliran yang dihasilkan dalam contoh ini untuk keterbacaan.

3. Konversi Menggunakan Jambu Biji

Selanjutnya - mari kita lihat solusi Guava , menggunakan perantara ByteSource :

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

4. Konversi Menggunakan Commons IO

Terakhir - mari kita lihat solusi 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 begitulah - 3 solusi sederhana dan bersih untuk membuka aliran dari file Java .

5. Kesimpulan

Dalam artikel ini, kami menjelajahi berbagai cara tentang cara mengonversi File ke InputStream dengan menggunakan pustaka yang berbeda.

Penerapan semua contoh dan cuplikan kode ini dapat ditemukan di GitHub - ini adalah proyek berbasis Maven, jadi semestinya mudah untuk mengimpor dan menjalankannya apa adanya.