1. InputStreamReaderkelas
Fitur stream liyane sing menarik yaiku sampeyan bisa nggabungake pirang-pirang aliran dadi rantai . A stream bisa maca data ora mung saka sumber data internal, nanging uga saka stream liyane .
Iki minangka mekanisme sing kuat banget ing Jawa, sing ndadekake bisa nggawe skenario maca data sing rumit kanthi nyambungake siji stream menyang liyane. Skema kaya iki katon kaya iki:

Nalika program maca data saka stream data, stream data banjur maca data saka sumber data sawijining, kang stream data liyane utawa file, contone.
Apa maneh, saben aliran data ora mung maca lan menehi data, nanging uga bisa ngowahi utawa nindakake macem-macem operasi. Conto apik saka "stream penengah" kuwi kelas InputStreamReader.
Kita wis ngerti kelas sing diarani FileReader- yaiku Readersing maca data saka file. Lan saka ngendi InputStreamReaderentuk data? Sing bener - saka InputStream.
Nalika nggawe InputStreamReaderobyek, sampeyan kudu pass ing InputStreamobyek utawa salah siji saka kelas turunane. Tuladha:
String src = "c:\\projects\\log.txt";
FileInputStream input = new FileInputStream(src);
InputStreamReader reader = new InputStreamReader(input);
Kelas InputStreamReaderwis kabeh cara sing Readerkelas wis, lan padha bisa digunakake ing cara sing padha.
Bentenipun utama antarane InputStreamReaderkelas lan, ngomong, FileReaderngendi padha maca data saka. FileReadermaca data saka file (duh - mulane diarani FileReader), nanging InputStreamReadermaca data saka file InputStream.
Nalika maca karakter saka FileReaderobyek nggunakake read()cara, banjur maca rong bait saka file ing disk lan bali minangka chars.
Nalika sampeyan maca karakter saka InputStreamReaderobyek nggunakake read()cara, banjur maca rong bita saka FileInputStreamobyek liwati, kang siji maca data saka file. Asil punika chain saka telpon kanggo read()cara.
2. BufferedReaderkelas
Kelas liyane sing menarik sing umume sampeyan gunakake yaiku BufferedReader. Iki uga minangka "stream penengah" sing maca data saka stream liyane.
Kaya jenenge, BufferedReaderkelas kasebut minangka subkelas Readerlan ngidini sampeyan maca karakter . Nanging sing paling menarik yaiku sampeyan uga kudu menehi sumber data ing wangun stream saka karakter sing bisa diwaca , yaiku stream sing menehi warisan Readerkelas.
Apa gunane? Ora kaya InputStreamReader, BufferedReaderkelas ora ngowahi bita dadi karakter: ora ngowahi apa wae. Nanging, buffer data .

Nalika program maca karakter siji saka BufferedReaderobyek, obyek maca Uploaded akeh karakter saka sumber stream bebarengan. Lan nyimpen ing njero.
Nalika karakter sabanjuré diwaca saka obyek BufferedReader, iku mung njupuk karakter sabanjuré saka array buffer internal lan bali tanpa ngakses sumber data. Mung nalika kabeh karakter ing buffer wis digunakake munggah, iku maca ing Uploaded gedhe liyane karakter.
Kelas BufferedReaderuga nduweni cara sing migunani banget — String readLine(), sing ngidini sampeyan maca kabeh senar data saka aliran sumber sekaligus. Sampeyan bisa nggunakake cara iki kanggo, ngomong, maca file lan nampilake isi ing layar baris dening baris. Tuladha:
Kita khusus nulis sawetara kode kompak kanggo nggambarake carane trep iki. Kode iki uga bisa ditulis kanthi luwih rinci.
|
Nggawe FileReaderobyek. Sumber data yaiku file. Nggawe BufferedReaderobyek. Sumber data yaiku a FileReader. Anggere isih ana data ing maca Waca siji baris Tampilan baris |
Yen sampeyan nggabungake pirang-pirang aliran, mula close()cara kasebut mung kudu diarani salah sawijining. Stream kasebut bakal nelpon metode kasebut ing sumber data, lan sateruse, nganti close()diarani aliran data pungkasan.
3. Maca saka console
Lan kasunyatan liyane menarik: Scannerkelas ora luwih saka stream input penengah sing maca data saka System.in, kang uga stream data.
Mangkene rong cara kanggo maca baris saka konsol:
| Kelas Scanner | Kelas BufferedReader lan BufferedWriter |
|---|---|
|
|
Kanca kita ora luwih saka variabel statis kelas . Iku sing jenenge .System.ininSystemInputStreamin
Dadi meh wiwit wiwitan sinau Java ing CodeGym, sampeyan wis nggarap aliran data lan nggawe rantai saka dheweke. Nanging saiki sampeyan bakal nindakake kanthi luwih sadar.
GO TO FULL VERSION