Lataa esitys
Esittely latautuu. Ole hyvä ja odota
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.