Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Kuinka niitä käsitellään

Samankaltaiset esitykset


Esitys aiheesta: "Kuinka niitä käsitellään"— Esityksen transkriptio:

1 Kuinka niitä käsitellään
Mistä ne tulevat? Java ja tietovirrat Kuinka niitä käsitellään Minne ne menevät?

2 Java ja tietovirrat Tänään aiheenamme standarditietovirrat
merkkivirrat poikkeustilanteisiin varautuminen Ensi maanantaina oliovirrat binäärivirtojen esittely

3 Tietovirrat IPO InputProcessOutput
Käsittely Process Syöttö Input Tulostus Output näppäimistö viivakoodi toinen prosessi verkon yli tiedosto tietokanta jne näyttö kirjoitin toinen prosessi verkkoon tiedosto tietokanta jne Tietovarastot

4 Javan tietovirrat Fyysisiä laitteita
Minne käsitelty tieto kirjoitetaan? Mistä tieto luetaan? Miten tieto käsitellään?

5 Javan tietovirrat : java.io – pakkaus Tiedon kaksi esitystapaa
Pienin tiedon talletusyksikkö Tavu, muodostuu kahdeksasta bitistä: mikä tahansa tieto InputStream OutputStream Merkki, muodostuu kahdesta tavusta (16 bittiä): tekstimuotoinen tieto Reader Writer

6 Tiedon lukeminen näppäimistöltä
Merkkivirtaa luetaan näppäimistöltä Määrittele tiedon lähde BufferedReader in = new BufferedReader                           (new InputStreamReader()); Talletetaan merkkivirtaa , enter lopettaa Väliaikainen talletuspaikka syöttöpuskuri: BufferedReader Java.lang-pakkauksen System.in: lähettää tavuvirtaa

7 Javan tietovirrat Näppäimistöltä tuleva merkkivirta
System.in InputStream InputStreamReader BufferedReader

8 Javan tietovirrat Näppäimistöltä tuleva merkkivirta
Mihin tieto talletetaan: Puskuri varataan lukemista varten BufferedReader in = new BufferedReader                           (new InputStreamReader(System.in)); Mistä tieto saadaan: näppäimistöltä Missä muodossa tieto saadaan? Luetaan tavuja, koodataan merkeiksi mistä tieto hankitaan – minne tieto talletetaan

9 Javan tietovirrat Näppäimistövirran lukeminen
import java.io.*; /* Tässä esitellään, kuinka System.in -tietovirta luetaan sovellukseen.System.in määrittelee tiedon lähteeksi työaseman näppäimistön */ class LueNappaimisto{ public static void main (String [] args){ String rivi; BufferedReader nappainsyote = new BufferedReader(new InputStreamReader(System.in)); //seuraavassa luetaan syötteitä //lukeminen VAATII varautumisen poikkeustilanteeseen try{ System.out.println("Anna tekstiä, pelkkä enter lopettaa: "); rivi = nappainsyote.readLine();

10 Javan tietovirrat Näppäimistövirran lukeminen
while(rivi.length() > 0){ System.out.println("Annoit:" + rivi); System.out.println("Anna tekstiä, pelkkä enter ” lopettaa: "); rivi = nappainsyote.readLine(); } System.out.println("Loppu"); } catch (IOException ioe) { System.out.println(ioe.getMessage()); } }//main }//class

11 Javan tietovirrat Tulostaminen näytölle
System.out.print – kirjoittaa riville, kirjoituksen jatkokohta jää samalle riville System.out.println - aloittaa kirjoituksen uudelta riviltä Huomaa: System.out ja System.in ovat System-luokan attribuutteja. Ne määrittelevät aina työasemakohtaisen standardisyöttö- ja tulostusvirran. Eli ”System” on työasema, järjestelmä jossa sovellus tällä hetkellä toimii Näppäimistöltä lukeminen:

12 Javan tietovirrat Tekstimuotoisen tiedoston käsittely
Kirjoitetaan tiedosto Luetaan tiedoston sisältö ja tulostetaan näytölle Muistetaan varautua virhetilanteisiin

13 Tekstitiedoston lukeminen
import java.io.*; public class LueTeksti { public static void main ( String[] args ){ try{ File testiTiedosto = new File("esim1.txt"); System.out.println( "Tiedoston sisältö: " getRivit(testiTiedosto)); } catch (FileNotFoundException fnf){ System.out.println("Tiedostoa ei löytynyt "); } catch (IOException ioe){ System.out.println("IO-virhe: " + ioe.getMessage()); } }

14 Tekstitiedoston lukeminen
public static String getRivit(File tiedosto)throws FileNotFoundException, IOException { BufferedReader luku = null; String rivit = ""; String rivi = null; try { luku = new BufferedReader(new FileReader(tiedosto)); while (( rivi = luku.readLine()) != null){ rivit = rivit + rivi System.getProperty("line.separator"); } } catch (FileNotFoundException ex) { ex.printStackTrace(); rivit = null; } return rivit; } }

15 Tiedosto on toisentyyppinen kuin odotimme
Poikkeustilanteet Entä jos levy on täynnä ja tiedostoa ei voi kirjoittaa? Tiedosto on toisentyyppinen kuin odotimme

16 Poikkeustilanteisiin varautuminen
Poikkeustilanteet Poikkeustilanteisiin varautuminen java.io – pakkauksen poikkeustilanteet, Exceptions, on suunniteltu I/O-poikkeusten käsittelyyn: FileNotFoundException : tiedostoa ei löydy IOException: ”yleinen” io-poikkeus EOFException: tiedoston loppu - poikkeus

17 Poikkeustilanteisiin varautuminen
Poikkeustilanteet Poikkeustilanteisiin varautuminen Käytetään poikkeuksen kiinniottoa Lause/lauseet jotka voivat aiheuttaa poikkeuksen, laitetaan try-lohkoon. Poikkeustilanteen selvittely laitetaan catch lohkoon: try { lause1; lause2; } catch (Exception poikkeusolio) System.out.println(poikkeusolio.getMessage());

18 Poikkeustilanteisiin varautuminen
Poikkeustilanteet Poikkeustilanteisiin varautuminen Käytetään poikkeuksen ”heittoa” edelleen metodia kutsuneeseen luokkaan: public static String getRivit(File tiedosto)throws FileNotFoundException, IOException Nyt kutsuvassa luokassa pitää olla try-catch –lohko

19 Poikkeustilanteisiin varautuminen
Poikkeustilanteet Poikkeustilanteisiin varautuminen Heittomekanismi: Luokka1 throws Luokka2 throws try{} catch {} Luokka3

20 Lukeminen ja kirjoittaminen
Tärkeitä pakkauksia ja luokkia 1. java.io.*; java.util StringTokenizer 3. java.lang.StringBuffer

21 HUOMAA ESIMERKIT Osion 4 viikkoon 1 löytyy tämän luennon esimerkkimateriaalit kohdasta ”Esimerkkejä viikolle 1” Kannattaa tutkia 


Lataa ppt "Kuinka niitä käsitellään"

Samankaltaiset esitykset


Iklan oleh Google