1. Téma 12 - Textové soubory a výjimky

Podobné dokumenty
Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

KTE / ZPE Informační technologie

Regulární výrazy. Vzory

Algoritmizace a programování

Textové soubory. alg9 1

Algoritmizace a programování

Práce se soubory v Javě

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Java a XML. 10/26/09 1/7 Java a XML

Typický prvek kolekce pro české řazení

8. přednáška: Soubory a proudy

Soubor jako posloupnost bytů

Datové struktury. alg12 1

Úvod do programování - Java. Cvičení č.4

Úvod do programovacích jazyků (Java)

Java - výjimky. private void vstup() throws IOException {... }

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Principy objektově orientovaného programování

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

7. Dynamické datové struktury

Řídicí struktury. alg3 1

17. Projekt Trojúhelníky

RMI Remote Method Invocation

Teoretické minimum z PJV

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Rozklad problému na podproblémy

Příkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo

3 KTE / ZPE Informační technologie

InputStream. FilterInputStream

OOPR_05. Případové studie

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

Abstraktní datové typy: zásobník

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Z. Kotala, P. Toman: Java ( Obsah )

Jazyk C# - přístup k datům

Jazyk C# (seminář 5)

Programování v Javě I. Únor 2009

Výjimky. v C# a Javě

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Programování v Javě I. Leden 2008

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

9. přednáška - třídy, objekty

6. Příkazy a řídící struktury v Javě

5 Rekurze a zásobník. Rekurzivní volání metody

Java - řazení objektů

Dědičnost (inheritance)

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2.

20. Projekt Domácí mediotéka

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.

Java Výjimky Java, zimní semestr

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

6. PRÁCE S DATOVÝMI PROUDY

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

Výjimky. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Iterator & for cyklus

Abstraktní třída a rozhraní

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Zápis programu v jazyce C#

Java a Caché IV: Manipulace s objekty

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Vytváření a použití knihoven tříd

Podmínky na zápočet. Java, zimní semestr

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Paměť počítače. alg2 1

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;

Algoritmizace a programování. Terminálový vstup a výstup

19. Projekt Adventura

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Vláknové programování část V

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Přehled probírané látky

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu

Jazyk C# (seminář 6)

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

29. Výjimky, jejich vznik, vyhození, odchyt a zpracování. (A7B36PVJ)

Obsah 7. přednášky: Tato tematika je zpracována v Záznamy přednášek: str

C# konzole Podíl dvou čísel, podmínka IF

Projekty pro výuku programování v jazyce Java

Generické programování

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

KTE / ZPE Informační technologie

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

5. přednáška - Rozklad problému na podproblémy

public class Karel { private int position; public boolean issmiling; public int getposition() { return position;

X-komponenty 3.1. Uživatelská příručka. J. Kocman, V. Trojan

Datové struktury obsah přednášky 1. Úvod 2. Třídy Type-wrapper (obalový typ) pro primitivní typy automatické převody 3. Automatické převody mezi

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Ošetřování chyb v programech

Transkript:

1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se požaduje výstup zpracovaných informací do souborů na paměťová média. 1.2. Teorie Před cvičením se požaduje aby studenti se seznámili s třídami: File, FileWriter, FileReader, BufferedReader. A též s výjimkami: FileNotFoundException, IOException 1.3. Ukázkové úlohy 1.3.1. Úloha 1 Zadání úlohy Vypracujte podle postupu řešení požadovanou aplikaci práce se soubory Postup řešení: 1. Načtěte celá čísla z textového souboru 2. Načtená čísla uložte do jednorozměrného pole 3. Načtená čísla vypište na obrazovku 4. K číslům v poli přičtěte zadané celé číslo 5. Upravená čísla uložte do textového souboru Řešení úlohy Výpis 1.1. package ipalpcv12vzorova; import java.io.bufferedreader; import java.io.file; import java.io.filenotfoundexception; import java.io.filereader; import java.io.filewriter; import java.io.ioexception; 1

public class Cisla { private int[] cisla; private int pocetcisel = 0; private static int MAX_CISEL = 100; public Cisla() { cisla = new int[max_cisel]; public boolean ulozdosouboru(string nazevsouboru) { boolean File soubor = new File(nazevSouboru); try { FileWriter writer = new FileWriter(soubor); if (i <= (pocetcisel - 2)) { writer.write(cisla[i] + ", "); else { writer.write(cisla[i] + ""); writer.close(); vysledek = true; catch (IOException ex) { return vysledek; public boolean nactizesouboru(string nazevsouboru) { boolean File soubor = new File(nazevSouboru); try { BufferedReader reader = new BufferedReader(new FileReader(soubor)); String radek = reader.readline(); while (radek!= null) { String[] prvkyradku = radek.split(","); for (int i = 0; i < prvkyradku.length; i++) { prvkyradku[i] = prvkyradku[i].trim(); cisla[pocetcisel] = Integer.parseInt(prvkyRadku[i]); pocetcisel++; radek = reader.readline(); reader.close(); vysledek = true; catch (FileNotFoundException ex) { catch (IOException ex) { return vysledek; public void pricticislo(int cislo) { 2

cisla[i] += cislo; @Override public String tostring() { String text = ""; if (i <= (pocetcisel - 2)) { text += cisla[i] + ", "; else { text += cisla[i]; return text; Výpis 1.2. package ipalpcv12vzorova; public class CislaMain { public static void main(string[] args) { Cisla cisla = new Cisla(); if (cisla.nactizesouboru("cislavstup.txt")) { System.out.println("Cisla po nacteni ze souboru:"); System.out.println(cisla); System.out.println(""); int pricticislo = 5; cisla.pricticislo(pricticislo); System.out.println("Cisla po pricteni cisla " + pricticislo); System.out.println(cisla); System.out.println(""); if (cisla.ulozdosouboru("cislavystup.txt")) { System.out.println("Soubor byl uspesne ulozen"); else { System.out.println("Soubor se nepodarilo ulozit"); else { System.out.println("Soubor se nepodarilo nacist"); 3

1.4. Úlohy k řešení 1.4.1. Zadání úlohy 1 Podle komentářů ve zdrojových souborech kostry řešení doplňte těla metod 1.4.2. Kostra pro řešení Výpis 1.3. package cviceni12.povinna; public class PoznamkovyBlok { private String[] poznamky; private static int MAX_POZNAMEK = 1000; private int pocetulozenychpoznamek = 0; public PoznamkovyBlok() { poznamky = new String[MAX_POZNAMEK]; public int getpocetulozenychpoznamek() { return pocetulozenychpoznamek; * Provede pridani poznamky do poznamkoveho bloku * * @param poznamka vkladana poznamka do poznamkoveho bloku public void pridejpoznamku(string poznamka) { * Provede odebrani poznamky z poznamkoveho bloku, * cislo poznamky zada uzivatel v danem intervalu * * @param cislopoznamky z intervalu <1, MAX_POZNAMEK> public void odeberpoznamku(int cislopoznamky) { * Slouzi pro posun o jednu poznamku vlevo pri odebirani poznamky * z poznamkoveho bloku private void presunpoznamkyvlevo(int pocindex) { * Metoda ulozi vsechny poznamky do souboru s nazvem, ktery zada uzivatel * @param nazevsouboru nazev souboru, do nejz budou poznamky ulozeny 4

public void ulozpoznamkydosouboru(string nazevsouboru) { * Metoda nacte vsechny poznamky ze souboru s nazvem, ktery zada uzivatel * @param nazevsouboru nazev souboru, z nejz budou poznamky nacteny public void nactipoznamkyzesouboru(string nazevsouboru) { @Override public String tostring() { String text = ""; text += "Pocet ulozenych poznamek: " + pocetulozenychpoznamek + "\n"; for (int i = 0; i < pocetulozenychpoznamek; i++) { text += (i + 1) + ": " + poznamky[i] + "\n"; return text; Výpis 1.4. package cviceni12.povinna; public class HlavniProgram { public static void main(string[] args) { // priklad pouziti tridy PoznamkovyBlok // muzete samozrejme zkouset dalsi volani metod PoznamkovyBlok notebook = new PoznamkovyBlok(); notebook.pridejpoznamku("poznamka1"); notebook.pridejpoznamku("poznamka2"); notebook.pridejpoznamku("poznamka3"); notebook.pridejpoznamku("poznamka4"); notebook.pridejpoznamku("poznamka5"); notebook.pridejpoznamku("poznamka6"); notebook.odeberpoznamku(2); notebook.odeberpoznamku(2); notebook.pridejpoznamku("poznamka7"); notebook.odeberpoznamku(4); 5