Výnimky-dokončenie
Dvadsiata druhá prednáška
Stiahnuť PDF · 969 kBPreber si túto poznámku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto poznámky.
Náhľad poznámky
Vstupy a výstupy
dokončenie
Informatika 2
0
Pojmy zavedené v 9. prednáške(1)
• štandardný vstup a výstup
• textové súbory
• binárne súbory
• objektové prúdy (???)
Informatika 2
1
Pojmy zavedené v 9. prednáške(2)
• štandardný vstup a výstup
• čítanie: triedy InputStream in a Scanner
• zápisovanie: trieda PrintStream out
• bežne členenie na riadky
Informatika 2
2
Pojmy zavedené v 9. prednáške(3)
• súbory
• trieda File
– spolupráca so súborovým systémom
• práca so súborom
– implicitné otvorenie – vytvorenie príslušnej inštancie
– čítanie alebo zapisovanie
– explicitné zatvorenie - správa close
Informatika 2
3
Pojmy zavedené v 9. prednáške(4)
• textové súbory
– čítateľné pre človeka
• čítanie:
Scanner (+ Scanner)+ File
• zápisovanie:
PrintWriter (+ File)
• formátovanie textového súboru
– bežne členenie na riadky
Informatika 2
4
Pojmy zavedené v 9. prednáške(5)
• binárne súbory
– nečitateľné pre človeka
• čítanie:
DataInputStream + FileInputStream (+ File)
• zapisovanie:
DataOutputStream + FileOutputStream (+ File)
• String a primitívne dátové typy
Informatika 2
5
Objektové prúdy
• aplikácia
– štruktúra spolupracujúcich objektov
– v operačnej pamäti
– ľubovoľne zložitá
– prirodzene nelineárna
• ukladanie na vonkajšiu pamäť
– postupnosť informácií – lineárna forma
• streamy: nelineárna štruktúra <–> serializácia
• ukladanie stavu objektov na vonkajšiu pamäť
• obnovenie stavu objektov z vonkajšej pamäte
Informatika 2
6
Objektové prúdy – triedy
• trieda pre uloženie objektov do súboru
– ObjectOutputStream
– writeObject
• trieda pre obnovenie objektov zo súboru
– ObjectInputStream
– readObject
Informatika 2
7
ObjectOutputStream
• uloží celý objekt = serializácia
• hodnoty všetkých atribútov
– hodnoty primitívnych typov
– objektové atribúty ako objekty - rekurzia
• rieši problém viacnásobných odkazov na objekt
Informatika 2
8
ObjectInputStream
• obnoví celý objekt = deserializácia
• hodnoty všetkých atribútov
• rieši problém viacnásobných odkazov na objekt
Informatika 2
9
Podmienka
• trieda ukladaného/obnovovaného objektu
implementuje interface Serializable
– môže dediť od predka
• značkovací interface
– žiadne metódy navyše – vnútorné riešenie Java
• triedy z balíčkov knižnice Java
– bežne implementujú interface Serializable
– nie je to 100% pravidlo
Informatika 2
10
Prvok kontajnera, chýba Serializable
Informatika 2
11
12
Informatika 2
Príklad KCaIB – podmienka
import java.io.Serializable;
public class CD extends AutorskeDielo
implements Serializable
import java.io.Serializable;
public class DVD extends AutorskeDielo
implements Serializable
Metóda zapis v triede Katalog
public void zapis() throws IOException
{
File subor = new File("Katalog.bin");
FileOutputStream stream =
new FileOutputStream(subor);
ObjectOutputStream zapisovac =
new ObjectOutputStream(stream);
zapisovac.writeObject(aZoznam);
zapisovac.close();
}
Informatika 2
13
Metóda nacitaj v triede Katalog
public void nacitaj()
throws IOException, ClassNotFoundException
{
File subor = new File("Katalog.bin");
FileInputStream stream =
new FileInputStream(subor);
ObjectInputStream citac =
new ObjectInputStream(stream);
aZoznam = (ArrayList<AVIDielo>)citac.readObject();
citac.close();
}
Informatika 2
14
Vďaka za pozornosť
Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.
nechodím na prednášky