"Halo, Amigo! Dina iki, Ellie ngandhani sampeyan babagan pola adaptor."

Umume kelas sing ana gandhengane karo stream I / O dileksanakake minangka adaptor. Padha ngowahi antarmuka sing padha utawa nyambungake, wiwit saka sing prasaja lan pindhah menyang kompleks.

"Apa InputStreamReader lan BufferedReader uga adaptor? Paling ora, padha banget padha karo adaptor ing cara sing digunakake: Sawise obyek digawe, liwati menyang konstruktor kelas liyane.

"Ya, InputStreamReader ngowahi antarmuka InputStream menyang antarmuka Reader . BufferedReader dudu adaptor ing wangun sing paling murni, amarga para pangripta Jawa mutusake ora menehi metode antarmuka sing kapisah dhewe. Nanging semangat kulawarga."

Tinimbang nulis bazillion kelas sing beda-beda, pangripta Jawa nulis rong lusin adaptor lan ngidini wong-wong mau bisa nyambung, nanging programer bisa uga pengin.

Pendekatan iki trep banget. A programmer tansah bisa nulis kelas lan / utawa adaptor dheweke, wis ngleksanakake antarmuka standar, lan kalebu ing chain saka obyek adaptor dheweke mbangun.

"Dadi kaya ngono kabeh. Tinimbang kelas kompleks sing gedhe, kita nggawe rantai obyek lan adaptor sing prasaja. Banjur sampeyan mung nggawe lan gabungke ing urutan sing bener!"

"Lan sampeyan ngleksanakake apa wae sing ilang."

"Ya, aku ngerti."

"Nanging sejatine aku pengin ngandhani babagan Reader lan Writer dina iki. Iki rong kelas abstrak sing meh padha karo kelas InputStream lan OutputStream. Nanging ora kaya kelas kasebut, rong kelas iki bisa digunakake kanthi karakter. Dheweke maca lan nulis karakter. trep banget nalika nggarap informasi teks. Ayo dideleng metode sing diduweni:"

Cara maca Apa metode kasebut
int read(char[] cbuf);
"Cara iki langsung maca sawetara karakter menyang buffer ( char array ), nganti buffer kebak utawa nganti sumber ora duwe karakter liyane kanggo maca."
Cara kasebut ngasilake jumlah karakter sing bener diwaca (sing bisa kurang saka dawane array)
int read();
"Cara iki maca siji karakter lan ngasilake. Asil widened kanggo int kanggo katon. Yen ora ana karakter kasedhiya, banjur cara bali -1."
boolean ready();
Cara iki ngasilake bener yen ana karakter sing durung diwaca kanggo metode sing diwaca
void close();
Cara iki "nutup" stream. Sampeyan nelpon iki yen sampeyan wis rampung nggarap stream.
Obyek banjur nindakake operasi housekeeping needed kanggo nutup file, etc.
Ing jalur iki, sampeyan ora bisa maca data liyane saka stream.

"Ternyata metode Reader's read(char [] cbuf) ngidini kita maca kabeh blok karakter, tinimbang siji karakter sekaligus. Dadi luwih cepet lan luwih trep."

"Pancen. Lan saiki ayo ndeleng metode apa sing diduweni Writer:"

Metode Apa metode kasebut
void write(int c);
Cara iki nulis siji karakter. Jinis int disingkat dadi char. Sisih ekstra mung dibuwang.
void write(char[] cbuff);
Cara iki nulis macem-macem karakter.
void write(String s);
Cara iki nulis senar. Iku mung diowahi dadi array saka karakter lan banjur cara liya disebut.
void flush();
Yen aliran internal nyimpen data sing durung ditulis, cara iki meksa supaya bisa ditulis.
void close();
Cara iki "nutup" stream. Sampeyan nelpon iki yen sampeyan wis rampung nggarap stream.
Obyek banjur nindakake operasi housekeeping needed kanggo nutup file, etc. Sampeyan ora bisa nulis data kanggo stream maneh, lan flush diarani kanthi otomatis.

Penting kanggo ngerti yen Reader lan Writer minangka kelas abstrak. Dheweke ora nindakake apa-apa lan meh ora ana kode. Kabeh cara kasebut kudu dileksanakake ing kelas sing bakal diwenehi warisan. Tugase yaiku nggawe standarisasi cara interaksi kelas . Pangembang ora perlu nggawe standar dhewe kanggo sesambungan karo siji liyane. Luwih trep kanggo saben wong njaga sawetara standar dhasar. Iki ngidini kelas ditulis dening programer beda gampang sesambungan ora mung karo kelas ditulis dening pangripta Jawa, nanging uga karo kelas ditulis dening programer liyane.

Standar kuat.

"Aku setuju. Ndhukung standar umum migunani kanggo kabeh wong."