Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tiedostojen käsittely

Samankaltaiset esitykset


Esitys aiheesta: "Tiedostojen käsittely"— Esityksen transkriptio:

1 Tiedostojen käsittely
Tiedoston luku ja tallennus Poikkeusten käsittely Oliot tiedostoissa

2 Tiedostot Tiedostojen käyttöä tarvitaan kun halutaan esimerkiksi säilyttää tietoa eri ohjelman ajokertojen välillä Rekisterit Asetustiedostot Tulosteet

3 Tiedostot Tiedostoja käsitellään Javassa tietovirtojen kautta
Vastaavia tietovirtoja käytetään Javassa komentoikkunaan tulostukseen ja verkon yli tapahtuvaan tiedonvälitykseen

4 File-luokka File +File(String) +boolean canRead() +boolean canWrite() +boolean exists() +String getAbsolutePath() +boolean isFile() +boolean isDirectory() +boolean length() +boolean createNewFile() +boolean delete() +boolean mkdir() ... Javan File-luokka sisältää yksittäisen tiedoston tai hakemiston käsittelyyn liittyviä toimintoja File-luokka löytyy java.io-paketista (import java.io.File)

5 File-luokka – esimerkki
import java.io.File; ... File file = new File(”phonebook.txt”); if (!file.exists()) { if (file.createNewFile()) System.out.println(”File created succesfully.”); else System.out.println(”Couldn’t create file.”); } else { System.out.println(”File phonebook.txt already exists.”); Esimerkki vaatii toimiakseen poikkeusten käsittelyn.

6 Poikkeukset Tiedostojen käsittelyssä voi tapahtua monentyyppisiä virheitä Oikeudet järjestelmässä Levytila Tiedostojen olemassaolo Virheiden helppoa hallinnointia varten on Java-kielessä käytössä poikkeukset

7 Poikkeukset Poikkeukset ovat olioita, joita ohjelmakoodista voidaan heittää (throw) Poikkeukset on otettava kiinni koodissa (catch) Poikkeuksia sisältävän koodin suoritus tehdään try-catch -lohkossa

8 Poikkeukset tiedostojen käsittelyssä
Tiedostojen käsittelyssä File-luokka voi heittää IOException-tyyppisen poikkeuksen (löytyy java.io.IOException-paketista) Kääntäjä ei käännä koodia ellei poikkeuksia ole otettu kiinni

9 Poikkeusten käsittely
import java.io.*; ... try { // Poikkeuksia mahdollisesti aiheuttava koodi tähän } catch (IOException e) { // Poikkeuksen käsittely

10 Poikkeusten käsittely
Javan API-luokkien metodien heittämät poikkeukset on kuvattu Javan API-dokumentaatiossa Poikkeusten kiinniotto kuuluu kurssin sisältöön, mutta niiden heittäminen ei (OH2 keväällä)

11 Tietovirrat ja niiden suunnat
Output stream Koodi Tiedosto Koodi Tiedosto Input stream Tietovirralla on aina suunta Tiedostoon tallentaessa käytetään OutputStream-luokasta perittyjä luokkia Tiedostosta luettaessa käytetään InputStream-luokasta perittyjä luokkia

12 OutputStream ja InputStream
OutputStream (abstrakti) FileOutputStream Tallennus tavuina ObjectOutputStream Olioiden tallennus FilterOutputStream (abstrakti) DataOutputStream Perustietotyyppien tallennus InputStream (abstrakti) FileInputStream Ylläolevilla luokilla tallennetun tiedon lukemiseen käytettävät luokat ObjectInputStream FilterInputStream (abstrakti) DataInputStream

13 Tietovirtojen käyttö Tiedostoon tallennus Tiedoston luku
Avataan tiedosto tallennusta varten Alustetaan tallennustietovirta Kutsutaan tietovirran metodeja tiedon tallentamiseksi Tyhjennetään tietovirta levylle Suljetaan tietovirta ja tiedosto Tiedoston luku Avataan tiedosto lukua varten Alustetaan lukutietovirta Kutsutaan tietovirran metodeja tiedon lukemiseksi Suljetaan tietovirta ja tiedosto

14 FileInputStream - esimerkki
try { File file = new File(”tiedosto.bin”); FileInputStream inStream = new FileInputStream(file); byte[] inputArray = new byte[5]; inStream.read(inputArray); // lukee 5 tavua System.out.println(inputArray); } catch (IOException e) { System.out.println(”ERROR: ” + e);


Lataa ppt "Tiedostojen käsittely"

Samankaltaiset esitykset


Iklan oleh Google