1 / 28

Mistä ne tulevat?

Mistä ne tulevat?. Tietovirrat ja tiedostot. Kuinka niitä käsitellään. Minne ne menevät?. pienin tietoyksikkö bitti kaksi tilaa: nolla (sähkövirtaa ei ole) yksi (sähkövirtaa kulkee) 8 bittiä muodostavat tavun eli merkin

reilly
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? Tietovirrat ja tiedostot Kuinka niitä käsitellään Minne ne menevät?

  2. pienin tietoyksikkö bitti kaksi tilaa: nolla (sähkövirtaa ei ole) yksi (sähkövirtaa kulkee) 8 bittiä muodostavat tavun eli merkin merkkijärjestelmiä on erilaisia riippuen siitä, kuinka 8 (7) bittiä on organisoitu,esimerkiksi ASCII (American Standard Code for Information Interchange) ISO Latin-1 DOS ASCII EBCDIC (IBM suurkoneet) Tiedon koodaus it-järjestelmissä Anne Benson

  3. Internetissä ei 8-bittinen järjestelmä riitä. Syy: kaikkialla maailmassa toimiva järjestelmä, lukemattomia kansallisia merkistöjä Internetin myötä käyttöön UNICODE, kahteen tavuun eli 16 bittiin perustuva järjestelmä (kehitys alkoi aiemmin 80-luvulla) UTF-8 käytetyimpiä Tiedon koodaus it-järjestelmissä Lisää tietoa esimerkiksi mainioista linkeistä - http://www.saunalahti.fi/wpoet/fin/char.html - http://fi.wikipedia.org/wiki/Merkist%C3%B6standardi (huomaa ”rikkoutuneet ö ja väliviiva) Anne Benson

  4. Tavut muodostavat tiedon: Javan alkeismuuttujat (fyysinen organisointi) int 4 tavua double 8 tavua pituus aina 11 merkkiä Loogisia, käyttäjän tietoja auton rekisteritunnus (String) AAa – Nnn vähintään kaksi kirjainta ja yksi numero henkilötunnus ppkkvvA/+/-nnnD, Tavuista tieto eli kenttä Anne Benson

  5. Esimerkiksi nide tositteen tiedot kuorma-auton tiedot opiskelijan tiedot Kentistä tietokokonaisuuksia(tietueita) Anne Benson

  6. Esimerkiksi asiakkaat tuotteet tilaukset opiskelijat Tietueista tiedostoja ja tietokantoja Anne Benson

  7. Java ja tietovirrat • -standarditietovirrat • merkkivirrat • poikkeustilanteisiin varautuminen

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

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

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

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

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

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

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

  15. Javan tietovirrat • Tietovirran määrittely • miten sovellus käsittelee tietoa • missä muodossa tieto luetaan/kirjoitetaan • mikä on tiedon fyysinen lähde/kohde

  16. Javan tietovirrat Näppäimistövirran lukeminen Näppäimistö: BufferedReader syotto = new BufferedReader (new InputStreamReader(System.in)); Lukeminen: vastaus = syotto.readLine();

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

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

  19. Tekstitiedoston lukeminen Tiedoston määrittäminen: BufferedReader luettava = new BufferedReader(new FileReader(tdstoNimi)); Lukeminen: String rivi; while ((rivi = luettava.readLine()) != null) System.out.println(rivi); luettava.close();

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

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

  22. 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()); }

  23. Poikkeustilanteet Poikkeustilanteisiin varautuminen Kun sovelluksessa on lauseita, jotka voivat aiheuttaa poikkeustilanteen synnyn, otetaan ne käsittelyyn try – catch lauseilla. Yhteen try- lauseeseen voidaan yhdistää useita catch – lohkoja. try{ lause1; lause2; lause3; } catch(NumberFormatException nfe){ System.out.println(”Ei numeerista tietoa”); } catch (ArrayIndexOutOfBoundsException aei){ System.out.println(”Taulukkokäsittelyssä indeksointi väärin”); } catch (Exception e){ System.out.println(e.getMessage()); }

  24. Poikkeustilanteet Poikkeustilanteisiin varautuminen • Huomaa: • tarkat poikkeusilmoitukset laitetaan välittömästi try – lohkon jälkeen • yleinen Exception tulee aina viimeiseksi • loppuun voidaan lisätä finally – lohko, joka suoritetaan aina, • oli aiempi suoritus tapahtunut try tai joistakin catch - lohkoista

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

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

  27. Lukeminen ja kirjoittaminen • Tärkeitä pakkauksia ja luokkia • java.io.* • sisältää tietovirtojen käsittelyn rajapinnat, luokat ja poikkeukset • java.util • StringTokenizer • java.lang.StringBuffer • merkkijonon käsittely dynaamisesti

  28. Lukeminen ja kirjoittaminen Näppäimistövirran ja tekstitiedoston käsittelyn esimerkit löytyvät osion 4 viikon yksi materiaalista

More Related