Lataa esitys
Esittely latautuu. Ole hyvä ja odota
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);
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.