1 / 33

Mistä ne tulevat?

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

ginny
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? Anne Benson

  2. Tiedon koodaus it-järjestelmissä • 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) Anne Benson

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

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

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

  6. Java ja tietovirrat • -standarditietovirrat • merkkivirrat • poikkeustilanteisiin varautuminen Anne Benson

  7. 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 Anne Benson

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

  9. 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 Anne Benson

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

  11. Tiedon lukeminen näppäimistöltä • Tieto lähtee tavuina näppäimistöltä -> muunnetaan matkalla syöttöpuskuriin merkkivirraksi (javan io-luokkien tehtävä) • Scannerin metodit nextInt(), nextDouble() jne muuntavat tiedon haluttuun muotoon • Jos sovelluksessa luetaan tieto ilman Scanneria, täytyy tehdä tiedon muunto Stringistä Anne Benson

  12. Javan tietovirrat Näppäimistöltä tuleva merkkivirta Merkkivirran lukemiseen tarvitaan luokat: InputStream System.in InputStreamReader BufferedReader Anne Benson

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

  14. Javan tietovirrat • Tietovirran määrittelyssä tarvitaan seuraavat tiedot: • miten sovellus käsittelee tietoa • missä muodossa tieto luetaan/kirjoitetaan: • tavu, merkki, int, double jne • mikä on tiedon fyysinen lähde/kohde: • levy, kirjoitin, toinen sovellus jne Anne Benson

  15. 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 Anne Benson

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

  17. Tekstitiedoston kirjoittaminen • Luetaan esimerkiksi näppäinsyötteenä annettavat rivit • Kirjoitetaan tiedosto • Muistetaan varautua virhetilanteisiin Anne Benson

  18. Tekstitiedoston kirjoittaminen • Määrittele fyysinen tiedosto File • Ohjelmalle kirjoitusalueeksi • PrintWriter • 3. Kirjoitettavan tiedoston muoto FileWriter Anne Benson

  19. Tekstitiedoston kirjoittaminen File tiedostoNimi = new File (”C:\\temp\\testi.txt”); PrintWriter kirjoitin = new PrintWriter (new FileWriter(tiedostoNimi)); Anne Benson

  20. Tekstitiedoston kirjoittaminen • muodostetaan kirjoitettava rivialue, String rivi, joka • saa jostakin tietoa (tässä ei välitetä mistä) • niin kauan kuin tietoa riittää, kirjoitetaan tiedostoon • rivi = hankitietoa • while(rivi.length() > 0){ • tulostus.write(rivi + System.getProperty("line.separator")); • rivi =hankitietoa • } Anne Benson

  21. Tekstitiedoston kirjoittaminen Esimerkki tekstitiedoston kirjoittamisesta löytyy esimerkistä TeksitiedostoKirjoittaja.java Anne Benson

  22. Tekstitiedoston lukeminen Tiedoston määritys: - luokat java.io-pakkauksessa BufferedReader – määrittää ohjelmalle lukupuskurin FileReader – kertoo, että luettava tiedosto on merkkimuotoinen File – fyysinen kohde levyllä, jota käsitellään Lukeminen: String rivi; while ((rivi = luettava.readLine()) != null) System.out.println(rivi); luettava.close(); Anne Benson

  23. Tekstitiedoston lukeminen Esimerkki tiedostomäärittelystä ja lukemisesta (ei vielä toimiva ohjelma): File tdstoNimi = new File(”c:\\testi.txt”); BufferedReader luettava = new BufferedReader(new FileReader(tdstoNimi)); String rivi;rivi = luettava.readLine(); while (rivi != null){ System.out.println(rivi); rivi = luettava.readLine() } luettava.close(); Anne Benson

  24. Tekstitiedoston lukeminen Tekstitiedoston lukeminen täydellisenä esimerkissä: TekstitiedostoLukija.java Anne Benson

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

  26. 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 Anne Benson

  27. 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()); } Anne Benson

  28. 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()); } Anne Benson

  29. 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 Anne Benson

  30. 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 Anne Benson

  31. Poikkeustilanteet Poikkeustilanteisiin varautuminen Heittomekanismi: Luokka1 throws Luokka2 throws try{} catch {} Luokka3 Anne Benson

  32. 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 Anne Benson

  33. Lukeminen ja kirjoittaminen Näppäimistövirran ja tekstitiedoston käsittelyn esimerkit löytyvät osion 4 viikon kolme materiaalista Anne Benson

More Related