PDF

Výnimky-dokončenie

Dvadsiata druhá prednáška

Formát
PDF
Veľkosť
969 kB
Pridané
Stiahnutí
561
Stiahnuť PDF · 969 kB

Preber 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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.