"Halo, Amigo! Dina iki kita bakal kenal karo aliran input / output . Kita milih topik iki sawetara dina kepungkur, nanging dina iki kita bakal njelajah kanthi lengkap. Aliran input / output dipérang dadi 4 kategori: "

1) Aliran dibagi miturut arahe: aliran input lan aliran output

2) Aliran dipérang miturut jinis data: sing bisa nganggo bait lan sing nganggo karakter .

Ing ngisor iki divisi kasebut dituduhake ing tabel:

Aliran input Aliran output
Dianggo karo bita InputStream OutputStream
Dianggo karo karakter Pembaca panulis

Yen obyek ngleksanakake antarmuka InputStream , banjur ndhukung kemampuan kanggo sequentially maca byte saka iku.

Yen obyek ngleksanakake antarmuka OutputStream , banjur ndhukung kemampuan kanggo sequentially nulis byte menyang.

Yen obyek ngleksanakake antarmuka Reader , banjur ndhukung kemampuan kanggo sequentially maca karakter (karakter) saka iku.

Yen obyek ngleksanakake antarmuka Writer , banjur ndhukung kemampuan kanggo sequentially nulis karakter (karakter) menyang.

Aliran Input/Output - 1

Stream output kaya printer. Kita bisa nyithak dokumen menyang printer. Kita bisa output data menyang stream output.

Kanggo bagean, stream input bisa dibandhingake karo scanner, utawa bisa uga stopkontak listrik. Kanthi scanner, kita bisa nggawa dokumen menyang komputer. Utawa kita bisa plug menyang stopkontak listrik lan nampa listrik saka iku. Kita bisa nampa data saka aliran input.

"Endi sing digunakake?"

"Kelas iki digunakake nang endi wae ing Jawa. kanca akrab kita System.in minangka variabel InputStream statis sing dijenengi ing kelas Sistem ."

"Serius?! Dadi kabeh wektu iki aku wis nggunakake InputStream lan malah ora éling iku. Apa System.out uga stream?"

"Ya, System.out minangka variabel PrintStream statis (turunan OutputStream ) ing kelas Sistem."

"Maksud sampeyan ngomong yen aku wis nggunakake stream lan ora ngerti?"

"Ya, lan iki mung ngandhani carane trep iki lepen. Sampeyan mung njupuk siji lan nggunakake."

"Nanging sampeyan ora bisa ngomong babagan System.in. Kita kudu nambah BufferedReader utawa InputStreamReader.

"Iku bener. Nanging ana uga alesan kanggo iku."

Ana akeh jinis data, lan akeh cara kanggo nggarap. Dadi jumlah kelas I / O standar tansaya cepet banget, sanajan padha nindakake kabeh kanthi cara sing padha. Kanggo ngindhari kerumitan kasebut, pangembang Jawa nggunakake prinsip abstraksi lan dibagi kelas dadi pirang-pirang bagean cilik.

Nanging sampeyan bisa nyambungake bagean kasebut kanthi cara sing koheren lan entuk fungsi sing kompleks, yen sampeyan butuh. Deleng conto iki:

Output string menyang console
System.out.println("Hello");
Simpen stream output console ing variabel kapisah.
Output string menyang stream.
PrintStream console = System.out;
console.println("Hello");
Nggawe array byte dinamis (ngembangake) ing memori.
Sambungake menyang stream output anyar (Obyek PrintStream).
Output string menyang stream.
ByteArrayOutputStream stream = new ByteArrayOutputStream();
PrintStream console = new PrintStream(stream);
console.println("Hello");

"Sajujure, iki kaya pesawat Lego. Mung aku ora jelas apa wae kode iki."

"Aja padha sumelang ing bab iku kanggo saiki. Kabeh ing wektune dhewe."

Iki aku pengin sampeyan elinga: Yen kelas ngleksanakake antarmuka OutputStream, sampeyan bisa nulis bita menyang. Meh persis kaya sampeyan output data menyang console. Apa sing ditindakake yaiku bisnise. Kanthi "kit Lego", kita ora peduli karo tujuan saben bagean. We Care babagan kasunyatan sing pilihan akeh bagean ngijini kita mbangun kuwi kelangan.

"Oke. Banjur kita miwiti saka ngendi?"