28
Tietovirrat ja tiedostot

Mistä ne tulevat?

  • Upload
    reilly

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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