1 / 20

Mistä ne tulevat?

Mistä ne tulevat?. Java ja tietovirrat. Kuinka niitä käsitellään. Minne ne menevät?. Java ja tietovirrat. Tänään aiheenamme standarditietovirrat merkkivirrat poikkeustilanteisiin varautuminen. Ensi maanantaina oliovirrat binäärivirtojen esittely. Tietovirrat IPO InputProcessOutput.

malik-rojas
Download Presentation

Mistä ne tulevat?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 InputStreamOutputStream • 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 poikkeustianteeseen 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 • 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

  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. Poikkeustilanteet Entä jos levy on täynnä ja tiedostoa ei voi kirjoittaa? Tiedosto on toisentyyppinen kuin odotimme

  16. 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. 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. 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. 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

More Related