> Hmm, skoro som tomu uveril. Ako si ale mam formulaciu "This method > blocks until input data is available, the end of the stream is > detected, or an exception is thrown." vysvetlit pre metodu read() bez > parametrov, ktora zjavne nema moznost, na rozdiel od read(byte[]), > precitat "mensi kusok"?
He? Prave ze uplne stejne! Proste pocka, az bude alespon jeden byte k dispozici. Jediny rozdil je, zde neni prostor pro ruzne vyklady. > Pozrel som zdrojaky InputStream-u; metodoa > read(byte[]) nerobi nic ine, iba patricne vola read() bez parametrov. To nema smysl zkoumat, vsechny dulezite implementace InputStream si read(byte[],int,int) pretizi. Jiste, chyba je v navrhu ze InputStream neni interface, ale takovych veci se od JDK1.0 tahne vice. > However, predcasne skoncit moze, ak dojde k IOException, co ale celkom > uspesne odmaskuje prazdnym catch blokom. Grrrrr. > > Nicmenej, idem sa zahlbit do zdrojakov SocketInputStream-u, aj ked uz > na prvy pohlad to vyzera na citanie pre silne zaludky. Zda sa, ze > pristup je tu opacny, namiesto toho, aby metoda read(byte[]) bola > implementovana pomocou read(), tak read() je implementovana pomocou > read(byte[1]). Samozrejme, API operacniho systemu pracuje s bufferem, bylo by velmi neefektivni to nacitat po jednom byte. > J.
