Seseorang menjelaskan kepada saya apa InputStream
dan apa OutputStream
?
Saya bingung tentang kasus penggunaan untuk keduanya InputStream
dan OutputStream
.
Jika Anda juga bisa memasukkan potongan kode untuk mengikuti penjelasan Anda, itu akan bagus. Terima kasih!
java
io
inputstream
outputstream
Orang Bohemian
sumber
sumber
InputStream digunakan untuk membaca, OutputStream untuk menulis. Mereka terhubung sebagai dekorator satu sama lain sehingga Anda dapat membaca / menulis semua jenis data yang berbeda dari semua jenis sumber yang berbeda.
Misalnya, Anda dapat menulis data primitif ke file:
Untuk membaca konten tertulis:
Anda dapat menggunakan jenis aliran lainnya untuk meningkatkan kemampuan membaca / menulis. Misalnya, Anda dapat memperkenalkan buffer untuk efisiensi:
Anda dapat menulis data lain seperti objek:
Anda dapat membaca dari sumber input lain yang berbeda:
Untuk sebagian besar input stream ada juga aliran output. Anda dapat menentukan aliran Anda sendiri untuk membaca / menulis hal-hal khusus dan ada aliran kompleks untuk membaca hal-hal kompleks (misalnya ada Aliran untuk membaca / menulis format ZIP).
sumber
Dari Tutorial Java :
Aliran adalah urutan data.
Suatu program menggunakan aliran input untuk membaca data dari sumber, satu per satu:
Suatu program menggunakan aliran output untuk menulis data ke suatu tujuan, satu per satu waktu:
Kode contoh dari tutorial oracle:
Program menggunakan byte ini stream untuk menyalin xanadu.txt file outagain.txt , dengan menulis satu byte pada suatu waktu
Lihatlah pertanyaan SE ini untuk mengetahui detail lebih lanjut tentang stream Karakter lanjutan, yang merupakan pembungkus di atas Byte Streams:
aliran byte dan aliran karakter
sumber
Anda membaca dari InputStream dan menulis ke OutputStream.
misalnya, katakan Anda ingin menyalin file. Anda akan membuat FileInputStream untuk dibaca dari file sumber dan FileOutputStream untuk menulis ke file baru.
Jika data Anda adalah aliran karakter, Anda bisa menggunakan FileReader alih-alih InputStream dan FileWriter alih-alih OutputStream jika Anda mau.
sumber
close
selaluflush
es, jadi tidak.OutputStream adalah kelas abstrak yang mewakili penulisan output. Ada banyak kelas OutputStream yang berbeda, dan mereka menulis hal-hal tertentu (seperti layar, atau File, atau byte array, atau koneksi jaringan, atau lain-lain). Kelas InputStream mengakses hal yang sama, tetapi mereka membaca data dari mereka.
Berikut adalah contoh dasar yang baik menggunakan FileOutputStream dan FileInputStream untuk menulis data ke file, lalu membacanya kembali.
sumber
Java stream adalah aliran data dari sumber ke tujuan. Sumber atau tujuan dapat berupa disk, memori, soket, atau program lain. Data dapat berupa byte, karakter, atau objek. Hal yang sama berlaku untuk aliran C # atau C ++. Metafora yang bagus untuk aliran Jawa adalah air mengalir dari keran ke bak mandi dan kemudian ke drainase.
Data mewakili bagian statis dari aliran; metode baca dan tulis bagian dinamis dari aliran.
InputStream
mewakili aliran data dari sumber, yangOutputStream
mewakili aliran data ke tujuan. Akhirnya,InputStream
danOutputStream
abstraksi atas akses tingkat rendah ke data, seperti pointer file C.sumber
Aliran : Dalam istilah awam, aliran adalah data, sebagian besar aliran umum adalah representasi data biner.
Input Stream : Jika Anda membaca data dari file atau sumber lain, aliran yang digunakan adalah aliran input. Dalam istilah yang lebih sederhana, input stream berfungsi sebagai saluran untuk membaca data.
Output Stream : Jika Anda ingin membaca dan memproses data dari sumber (file dll), Anda harus menyimpan data terlebih dahulu, maksud untuk menyimpan data adalah output stream.
sumber
Aliran keluaran umumnya terkait dengan beberapa tujuan data seperti file atau jaringan dll. Di aliran output java adalah tujuan di mana data akhirnya ditulis dan berakhir
sumber