Top Banner
Tietovirrat ja tiedostot
28

Mistä ne tulevat?

Jan 14, 2016

Download

Documents

reilly

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mistä ne tulevat?

Tietovirrat ja tiedostot

Page 2: Mistä ne tulevat?

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)

Page 3: Mistä ne tulevat?

Anne Benson

Tiedon koodaus it-järjestelmissä

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ä

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)

Page 4: Mistä ne tulevat?

Anne Benson

Tavuista tieto eli kenttä

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,

Page 5: Mistä ne tulevat?

Anne Benson

Kentistä tietokokonaisuuksia(tietueita)

Esimerkiksi

• nide

• tositteen tiedot

• kuorma-auton tiedot

• opiskelijan tiedot

Page 6: Mistä ne tulevat?

Anne Benson

Tietueista tiedostoja ja tietokantoja

Esimerkiksi

• asiakkaat

• tuotteet

• tilaukset

• opiskelijat

Page 7: Mistä ne tulevat?

Java ja tietovirrat

-standarditietovirrat

-merkkivirrat

-poikkeustilanteisiin varautuminen

Page 8: Mistä ne tulevat?

Tietovirrat IPO InputProcessOutput

SyöttöInput

TulostusOutput

KäsittelyProcess

Tietovarastot

•näppäimistö•viivakoodi•toinen prosessi•verkon yli•tiedosto•tietokanta•jne

•näyttö•kirjoitin•toinen prosessi•verkkoon•tiedosto•tietokanta•jne

Page 9: Mistä ne tulevat?

Javan tietovirrat Fyysisiä laitteita

Mistä tieto luetaan?

Miten tieto käsitellään?

Minne käsitelty tieto kirjoitetaan?

Page 10: Mistä ne tulevat?

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

Page 11: Mistä ne tulevat?

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

Page 12: Mistä ne tulevat?

Merkkivirtaa luetaan näppäimistöltä

1. Määrittele tiedon lähde

BufferedReader in = new BufferedReader                           (new InputStreamReader());

Java.lang-pakkauksen System.in: lähettää tavuvirtaa

Talletetaan merkkivirtaa , enter lopettaa

Väliaikainen talletuspaikka syöttöpuskuri: BufferedReader

Tiedon lukeminen näppäimistöltä

Page 13: Mistä ne tulevat?

Javan tietovirrat Näppäimistöltä tuleva merkkivirta

BufferedReader

InputStreamReader

InputStream

System.in

Page 14: Mistä ne tulevat?

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 tietosaadaan?Luetaan tavuja, koodataan merkeiksi

Page 15: Mistä ne tulevat?

Javan tietovirrat

Tietovirran määrittely

• miten sovellus käsittelee tietoa

• missä muodossa tieto luetaan/kirjoitetaan

• mikä on tiedon fyysinen lähde/kohde

Page 16: Mistä ne tulevat?

Javan tietovirrat Näppäimistövirran lukeminen

Näppäimistö:

BufferedReader syotto = new BufferedReader (new InputStreamReader(System.in));

Lukeminen:vastaus = syotto.readLine();

Page 17: Mistä ne tulevat?

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

Page 18: Mistä ne tulevat?

Javan tietovirrat Tekstimuotoisen tiedoston käsittely

1. Kirjoitetaan tiedosto

2. Luetaan tiedoston sisältö ja tulostetaan näytölle

Muistetaan varautua virhetilanteisiin

Page 19: Mistä ne tulevat?

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();

Page 20: Mistä ne tulevat?

Poikkeustilanteet

Page 21: Mistä ne tulevat?

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

Page 22: Mistä ne tulevat?

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());

}

Page 23: Mistä ne tulevat?

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

Page 24: Mistä ne tulevat?

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

Page 25: Mistä ne tulevat?

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

Page 26: Mistä ne tulevat?

Poikkeustilanteet

Poikkeustilanteisiin varautuminen

Heittomekanismi:

Luokka1

Luokka2

Luokka3

throws

throws

try{}

catch {}

Page 27: Mistä ne tulevat?

Lukeminen ja kirjoittaminen

Tärkeitä pakkauksia ja luokkia

1. java.io.*

sisältää tietovirtojen käsittelyn rajapinnat, luokat ja poikkeukset

2 java.util

StringTokenizer

3. java.lang.StringBuffer

merkkijonon käsittely dynaamisesti

Page 28: Mistä ne tulevat?

Lukeminen ja kirjoittaminen

Näppäimistövirran ja tekstitiedoston käsittelyn esimerkit löytyvät

osion 4 viikon yksi materiaalista