Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 2.218 pregleda

Najnovija ↓

Input U Javi - koji? 08.01.2014. u 14:12 · pre 156 meseci #1
Pozdrav, jedno pitanje nevezano za neki zadatak.

Kada sam poceo sa ucenjem Jave koristio sam ColsoleReader , onda su mi ovde preporucili da koristim BufferedReader za ulaz podataka a sada nailazim na Scanner da se koristi u nekim primerima.

Zanima me koja je razlika izmedju ovih klasa i da li treba da se opterecujem koju klasu za ulaz cu koristiti, da li je neka opste prihvacena?

Sviđa mi se1
Re: Input U Javi - koji? 11.02.2014. u 03:14 · pre 155 meseci #2
Java I/O je prilično komplikovan. Pruža mnogo opcija korisniku, ali je zato prilično komplikovan za korištenje.

Console služi samo za čitanje sa konzole, i radi posao ako je samo to potrebno. Prilično je jednostavan i shvatljiv. Ja ga lično ne koristim.

BufferedReader je samo wrapper(omotač) oko ostalih Reader-a koji čitaju karaktere http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html , i on služi za ubrzavanje čitanja. Da ne bi čitali znak po znak, on će da pročita više znakova odjednom i da ih sačuva u svojoj memoriji. BufferedReader sam ne radi ništa. Njemu je potreban objekat koji će ustvari da "vrši čitanje", te stoga treba da ispišeš mnogo stvari kada ga inicijalizuješ
Code:
new BufferedReader(new InputStreamReader(System.in))

Praviš novi BufferedReader, ali mu daješ InputStreamReader i uloga BufferedReadera je da ustvari ubrza rad sa InputStreamReaderom. InputStreamReader će da "pretvori" bajtove koje dobije iz svog InputStreama u karaktere. Njegov InputStream je System.in - konzola.
Znači : sa konzole se šalju bajtovi (System.in), InputStreamReader ih "pretvara" u karaktere i skladišti ih u BufferedReader-u sa kojim ti radiš.

Scanner je još jedna stepenica iznad. On ne samo da čita strim, nego ga može i parsirati. Skeneru možeš proslijediti BufferedReader kao strim sa koga treba da čitaš.

Ja ti preporučujem da koristiš BufferedReader ako čitaš iz nekih fajlova ili sa mreže. Ukoliko podatke treba da parsiraš, onda koristi Scanner(možeš čak gurnuti i čitav onaj BufferedReader koji si napravio za čitanje fajla u prethodnoj rečenici). Napomena : Scanner nije thread safe dok BufferedReader jeste(ova izjava će ti biti jasnija kada naučiš niti).
Ukoliko čitaš sa konzole, onda je ok da koristiš Console, ako ti je tako lakše.

Pozdrav
Sviđa mi se2
Re: Input U Javi - koji? 11.02.2014. u 14:04 · pre 155 meseci #3
Hvala , sada je sve mnogo jasnije, ovo je i vise nego sto sam ocekivao za objasnjenje... hvalaa
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme