persyaratan saya adalah membaca File dari RAR. Asumsikan saya tidak mencoba untuk menulis File sementara dari RAR, di dalam RAR saya memiliki File, hanya saya perlu membaca.
androidgalaxyman
Saya tidak mengerti pertanyaannya. Mohon klarifikasi. Jika Anda menginginkan File asli dari InputStream, tidak ada satu pun: Anda membaca file RAR, bukan File. Jika Anda menginginkan yang lain, apa?
Tidak dapat menyelesaikan IOUtils di Android Studio dan link yang Anda referensikan adalah 404.
Shahraiz T.Nov
3
org.apache.directory.studio:org.apache.commons.io perlu ditambahkan sebagai ketergantungan. Salahku. :)
Shahraiz T.
7
Tutup OutputStream dengan benar, gunakan percobaan dengan sumber daya atau IOUtils.closeQuietly. Saya tahu ini hanya sebuah contoh tetapi pemula akan menyalinnya secara harfiah.
Itu juga ada di org.apache.axis2.util dengan parameter ketiga untuk fungsi salin. Fungsinya juga berfungsi di sana. Ada perbandingan tentang apa yang harus digunakan?
Ridhuvarshan
27
Sejak Java 7, Anda dapat melakukannya dalam satu baris bahkan tanpa menggunakan pustaka eksternal:
Jika Anda menggunakan Java versi 7 atau lebih tinggi, Anda dapat menggunakan try-with-resources untuk menutup file FileOutputStream. Kode berikut digunakan IOUtils.copy()dari commons-io .
Jawaban:
Anda perlu membuat file baru dan menyalin konten dari
InputStream
ke file itu:Saya menggunakan kemudahan
IOUtils.copy()
untuk menghindari penyalinan aliran manual. Juga memiliki buffering bawaan.sumber
Dalam satu baris:
(org.apache.commons.io)
sumber
Buat file temp dulu.
sumber
Sejak Java 7, Anda dapat melakukannya dalam satu baris bahkan tanpa menggunakan pustaka eksternal:
Lihat dokumen API .
sumber
Jika Anda tidak ingin menggunakan perpustakaan lain, di sini adalah fungsi sederhana untuk mengkonversi
InputStream
keOutputStream
.Sekarang Anda dapat dengan mudah menulis
Inputstream
ke dalam file dengan menggunakanFileOutputStream
-sumber
Solusi Java 11 yang mudah dengan mencoba dengan blok sumber daya
java.io.InputStream # transferTo tersedia sejak Java 9.
sumber
Jika Anda menggunakan Java versi 7 atau lebih tinggi, Anda dapat menggunakan try-with-resources untuk menutup file
FileOutputStream
. Kode berikut digunakanIOUtils.copy()
dari commons-io .sumber
try
inisialisasi secara otomatis ditutup ketikatry
blok keluar.