Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuMikael Halttunen Muutettu yli 8 vuotta sitten
1
Anne Benson Tietovirrat ja tiedostot
2
Anne Benson 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)
3
Anne Benson 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,
4
Anne Benson Kentistä tietokokonaisuuksia (tietueita) Esimerkiksi nide tositteen tiedot kuorma-auton tiedot opiskelijan tiedot
5
Anne Benson Tietueista tiedostoja ja tietokantoja Esimerkiksi asiakkaat tuotteet tilaukset opiskelijat
6
Anne Benson Java ja tietovirrat -standarditietovirrat -merkkivirrat -poikkeustilanteisiin varautuminen
7
Anne Benson Tietovirrat IPO InputProcessOutput Syöttö Input Tulostus Output Käsittely Process Tietovarastot näppäimistö viivakoodi toinen prosessi verkon yli tiedosto tietokanta jne näyttö kirjoitin toinen prosessi verkkoon tiedosto tietokanta jne
8
Anne Benson Javan tietovirrat Fyysisiä laitteita Mistä tieto luetaan? Miten tieto käsitellään? Minne käsitelty tieto kirjoitetaan?
9
Anne Benson 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
10
Anne Benson Merkkivirtaa luetaan näppäimistöltä 1.Määrittele tiedon lähde BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); Java.lang-pakkauksen System.in: lähettää tavuvirtaa Talletetaan merkkivirtaa, enter lopettaaVäliaikainen talletuspaikka syöttöpuskuri: BufferedReader Tiedon lukeminen näppäimistöltä
11
Anne Benson 1.Tieto lähtee tavuina näppäimistöltä -> muunnetaan matkalla syöttöpuskuriin merkkivirraksi (javan io-luokkien tehtävä) 2.Scannerin metodit nextInt(), nextDouble() jne muuntavat tiedon haluttuun muotoon 3.Jos sovelluksessa luetaan tieto ilman Scanneria, täytyy tehdä tiedon muunto Stringistä Tiedon lukeminen näppäimistöltä
12
Anne Benson Javan tietovirrat Näppäimistöltä tuleva merkkivirta BufferedReader InputStreamReader InputStream System.in Merkkivirran lukemiseen tarvitaan luokat:
13
Anne Benson Javan tietovirrat Näppäimistöltä tuleva merkkivirta BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); Mihin tieto talletetaan: Puskuri varataan lukemista varten Mistä tieto saadaan: näppäimistöltä mistä tieto hankitaan – minne tieto talletetaan Missä muodossa tieto saadaan? Luetaan tavuja, koodataan merkeiksi
14
Anne Benson 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
15
Anne Benson Javan tietovirrat Tulostaminen näytölle Tulostaminen näytölle 1.System.out.print – kirjoittaa riville, kirjoituksen jatkokohta jää samalle riville 2.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
16
Anne Benson Javan tietovirrat Tekstimuotoisen tiedoston käsittely 1.Kirjoitetaan tiedosto 2.Luetaan tiedoston sisältö ja tulostetaan näytölle Muistetaan varautua virhetilanteisiin
17
Anne Benson Tekstitiedoston kirjoittaminen 1.Luetaan esimerkiksi näppäinsyötteenä annettavat rivit 2.Kirjoitetaan tiedosto Muistetaan varautua virhetilanteisiin
18
Anne Benson Tekstitiedoston kirjoittaminen 1.Määrittele fyysinen tiedosto File 2.Ohjelmalle kirjoitusalueeksi PrintWriter 3. Kirjoitettavan tiedoston muoto FileWriter
19
Anne Benson Tekstitiedoston kirjoittaminen File tiedostoNimi = new File (”C:\\temp\\testi.txt”); PrintWriter kirjoitin = new PrintWriter (new FileWriter(tiedostoNimi));
20
Anne Benson 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 }
21
Anne Benson Tekstitiedoston kirjoittaminen Esimerkki tekstitiedoston kirjoittamisesta löytyy esimerkistä TeksitiedostoKirjoittaja.java
22
Anne Benson 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();
23
Anne Benson 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();
24
Anne Benson Tekstitiedoston lukeminen Tekstitiedoston lukeminen täydellisenä esimerkissä: TekstitiedostoLukija.java
25
Anne Benson Poikkeustilanteet
26
Anne Benson Poikkeustilanteet Poikkeustilanteisiin varautuminen java.io – pakkauksen poikkeustilanteet, Exceptions, on suunniteltu I/O-poikkeusten käsittelyyn: FileNotFoundException : tiedostoa ei löydyFileNotFoundException IOException: ”yleinen” io-poikkeusIOException EOFException: tiedoston loppu - poikkeusEOFException
27
Anne Benson 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()); }
28
Anne Benson 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()); }
29
Anne Benson 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
30
Anne Benson 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
31
Anne Benson Poikkeustilanteet Poikkeustilanteisiin varautuminen Heittomekanismi: Luokka1 Luokka2 Luokka3 throws try{} catch {}
32
Anne Benson Lukeminen ja kirjoittaminen Tärkeitä pakkauksia ja luokkia 1.java.io.* sisältää tietovirtojen käsittelyn rajapinnat, luokat ja poikkeukset 2java.util StringTokenizer 3.java.lang.StringBuffer merkkijonon käsittely dynaamisesti
33
Anne Benson Lukeminen ja kirjoittaminen Näppäimistövirran ja tekstitiedoston käsittelyn esimerkit löytyvät osion 4 viikon kolme materiaalista
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.