Java ulazne i izlazle operacije uključuju korišćenje tokova. Tok je apstraktna reprezentacija (predstavljanje) ulaznog ili izlaznog uređaja koji je izvor ili odredište za podatke. U tok se mogu upisivati podaci i iz toka se mogu čitati podaci. Tok se može zamisliti kao niz bajtova koji teku u ili iz programa.

Kada upisujemo podatke u tok, tok se tada naziva izlazni tok. Izlazni tok se odnosi na bilo koji uređaj kome se može proslediti niz bajtova (datoteka - fajl na disku ili udaljenom računaru, štampač, monitor ...).

Podaci se čitaju iz ulaznog toka. Po pravilu to može biti bilo koji serijski izvor podataka ( datoteka, tastatura, udaljeni računar).

Glavni razlog za korišćenje tokova za osnovne ulazne i izlazne operacije jeste da se obezbedi nezavisnost programskog koda u odnosu na uređaj koji se koristi (time ne brinemo o karakteristikama svakog uređaja sa kojim radimo i time programi rade na mnoštvu ulazno-izlaznih uređaja bez ikakve izmene izvornog koda).

Ulazno-izlaznim operacijama tokova upravlja paket java.io.

U našem radu, do daljnjeg ćemo za izlaz na ekran (monitor) u konzolnom režimu koristiti funkcije System.out.print i System.out.println koje smo već koristili.

Primer. Izračunavanje obima pravougaonika:

import java.util.Scanner; //ovu liniju dodaje kompajler sam
public class ObimPravougaonika {
public static void main(String[] args) {
Scanner ulaz=new Scanner(System.in); //Klasa koju koristimo za ulaz
double a,Obim;
int b;
System.out.print("Unesi stranice pravougaonika.\na=");
a=ulaz.nextDouble(); //realni broj
System.out.print("b=");
b=ulaz.nextInt(); //celi broj
Obim=2*a+2*b;
System.out.print("Obim pravougaonika stranica a="+a+" i b="+b+" je "+Obim);
}
}

Unos i prikaz podataka  u Android-u

Pošto u Androidu nemamo konzolu, za vezbe osnovnih, uvodnih metoda programiranja koristićemo komponente:

  • tekstualne oznake (TextView) za poruke korisniku,
  • teksualna polja ( Text Fields (EditText)) za unos i prikaz podataka, i
  • dugme (Button) za pokretanje izračunavanja.

Komponente na formu postavljamo u okviru activity_.....xml, ili prevlačenjem u režimu dizajna ili ručnim upisom u režimu teksta.

 Za gorenavedeni primer izračunavanja obima pravougaonika,

A. stavićemo na formu:

  • tekstualne oznake sa natpisima (nebitni nazivi): stranica a, stranica b i obim,
  • tekstualna polja tipa (inputType): number : tbNa (tekst boks, broj, a), tbNb, tbNob, i
  • dugme dIzracunaj

B. napišemo metodu

But public void IzracunajObim(){
        String tekstPolja=((EditText) findViewById(R.id.tbNDa)).getText().toString();
        int a=Integer.parseInt(tekstPolja);
        tekstPolja=((EditText) findViewById(R.id.tbNDb)).getText().toString();
        int b=Integer.parseInt(tekstPolja);
        int obim=2*a+2*b;

        EditText tObim=(EditText) findViewById(R.id.tbNDob);
        tObim.setText(Integer.toString(obim));
    }

C. Povežemo metodu sa klikom na dugme (OnClick)

Ovo možemo da uradimo na dva načina:

C1. u activity_.....xml

u osobinama dugmeta u polje OnClick unesemo ime metode IzracunajObim. U tekstualnom režimu to izgleda ovako:

<Button
        android:text="Izracunaj"
       ...

       android:layout_below="@+id/tbNDob"
        android:onClick="IzracunajObim"/>

C2. u klasi onCreate dodajemo kod za osluškivanje i hvatanje događaja onClick:

Button dugmeIzr=(Button)findViewById(R.id.dIzracunaj);
        dugmeIzr.setOnClickListener(new View.OnClickListener(){
            @Override
                public void onClick(View view) {
                IzracunajObim();
            }
        });

 

 

Vežbe / Zadaci:

 

Sve cene se za kupce iz Srbije obračunavaju u dinarima po srednjem kursu Narodne banke Srbije na dan izdavanja predračuna. PDV se dodatno obračunava. Gloria Ferrari doo maksimalno koristi sve svoje resurse da Vam svi artikli na sajtu budu prikazani sa ispravnim nazivima, opisima, fotografijama i cenama, ali nažalost ne možemo garantovati da su svi podaci na sajtu u potpunosti ispravni. Svi artikli prikazani na ovom sajtu su deo naše ponude i ne podrazumeva se da su svi dostupni u svakom trenutku na našem lageru. Tačne podatke sa rokovima isporuke dobijate u predračunu. Zadržavamo pravo promene cena svih proizvoda i usluga, bez prethodne najave na sajtu.