Podstawy i języki programowania

Podobne dokumenty
Strumienie, pliki. Sortowanie. Wyjątki.

Podstawy i języki programowania

Podstawy i języki programowania

Strumienie, pliki. Sortowanie. Wyjątki.

Programowanie 3 - Funkcje, pliki i klasy

Podstawy i języki programowania

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

Programowanie w języku Java

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy i języki programowania

Wykład 4: Wejście/wyjście: strumienie Java

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

Podstawy i języki programowania

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Wykład 4. Tablice. Pliki

Strumienie i serializacja

Podstawy obiektowości

Aplikacje w środowisku Java

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

Programowanie obiektowe

Wykład 2: Podstawy Języka

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

MATERIAŁY POMOCNICZE DO ĆWICZENIA 3 Klasy i obiekty; atrybuty i metody

Wykład 10: Wejście i Wyjście

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Wprowadzenie do języka Java

Programowanie Obiektowe Ćwiczenie 4

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie rozproszone w języku Java

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Programowanie - instrukcje sterujące

Wykład 8: Obsługa Wyjątków

Programowanie obiektowe

1 Klasa File. 2 Writer. Programowanie w j zyku Java - Adam Krechowicz. Klasa File zapewnia podstawowe operacje na plikach

Materiały do zajęć III

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Podstawy otwartych języków programowania Wyjątki i strumienie I/O

Programowanie obiektowe

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Programowanie obiektowe

Pliki. Operacje na plikach w Pascalu

Bezpieczne uruchamianie apletów wg

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Zaawansowane aplikacje WWW - laboratorium

Laboratorium 1 - Programowanie proceduralne i obiektowe

Aplikacje w środowisku Java

1 Powtórzenie wiadomości

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

JDK można pobrać ze strony

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Pliki. Informacje ogólne. Obsługa plików w języku C

Programowanie w Javie 1 Wykład i Ćwiczenia 2 Przegląd podstawowych klas w Javie (elementy programowania obiektowego) Płock, 16 października 2013 r.

Obsługa błędów za pomocą wyjątków. Paweł Motofa (140746)

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Programowanie obiektowe

Java EE produkcja oprogramowania

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

akademia androida Składowanie danych część VI

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Programowanie obiektowe

Zasady programowania Dokumentacja

Wstęp do Programowania, laboratorium 02

Programowanie w języku Java

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Projektowanie aplikacji internetowych laboratorium

Wyjątki (exceptions)

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Katalog książek cz. 2

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

KLASY, INTERFEJSY, ITP

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Języki programowania imperatywnego

Metody Metody, parametry, zwracanie wartości

Zaawansowane techniki programowania C#

Programowanie w językach

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Multimedia JAVA. Historia

Programowanie w języku Java

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Język C++ wykład VIII

Aplikacja wielowątkowa prosty komunikator

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

Wykład 4: Klasy i Metody

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Programowanie obiektowe - zadania

Zadania z podstaw programowania obiektowego

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Transkrypt:

Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Wyjątki Opis Jeżeli w programie pojawi się operacja niedozwolona (np. przypisanie do zmiennej typu int ciągu znaków) zgłasza on określony wyjątek i kończy swoje działanie. Aby nasza aplikacja nie finalizowała działania, w momencie pojawienia się błędu, możemy zastosować obsługę wyjątków polegającą na złapaniu błędu (catch) i obsłużeniu go. Części składowe obsługi wyjątków: 1 Blok try (obowiązkowy). 2 Blok catch (opcjonalny/obowiązkowy). 3 Blok finally (opcjonalny/obowiązkowy). 2 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Ogólna struktura obsługi wyjątków try kod mogący spowodować wystąpienie błędu catch ( typwyjątku obiekt ) kod obsługujący wyjątek catch ( innytypwyjątku obiekt ) kod obsługujący wyjątek. finally kod, który wykona się niezależnie od wystąpienia wyjątku 3 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład int zmienna = 0; try zmienna = odczyt. nextint (); catch ( InputMismatchException ex) System. out. print (" Wpisałeś wartość "); zmienna = 5; złą finally System. out. print ( zmienna ); // 5 lub wpisana wartość 4 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład int zmienna = 0; try zmienna = odczyt. nextint (); catch ( InputMismatchException ex) System. out. print (" Wpisałeś złą wartość "); zmienna = 5; System. out. print ( zmienna ); // 5 lub wpisana wartość 5 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład - niezalecany int zmienna = 0; try zmienna = odczyt. nextint (); catch ( Exception ex) System. out. print (" Coś poszło źle - "+ex. tostring ()); zmienna = 5; finally System. out. print ( zmienna ); // 5 lub wpisana wartość 6 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zadanie 1 Napisz program pobierający od użytkownika liczbę całkowitą, a następnie dzielący przez nią liczbę 5. Obsłuż możliwość wpisania przez użytkownika liczby 0. 2 Dla powyższej aplikacji wykorzystaj metodę printstacktrace przechwyconego wyjątku (w bloku catch). 7 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Klasa File Tworzenie instancji klasy File Klasa File wykorzystywana jest do przechowywania danych o pliku. Spssób utworzenia jej instancji jest następujący: File plik = new File (" sciezkapliku "); Aby móc korzystać z klasy musimy ją zaimportować: import java.io.file ; Dla operacji mogących spowodować wystąpienie wyjątku wymagane jest zaimportowanie klasy: import java. io. IOException ; 8 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przegląd najważniejszych metod Metoda Opis exists() Zwraca wartość typu Boolean reprezentującą informację czy plik istnieje createnewfile () Tworzy nowy plik 9 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład public static void main ( String [] args ) File plik = new File (" sciezkapliku "); if (! plik. exists ()) try plik. createnewfile (); catch ( IOException ex) System. out. print (" Błąd "); ex. printstacktrace (); 10 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Uwaga Opis W celu uproszczenia zapisu na kolejnych slajdach nie będą obsługiwane błędy (zastosowano instrukcję throws, która zgłosi wystąpienie wyjątku wyżej w hierarchii). Proszę posługiwać się zapisem korzystającym z bloku try, catch oraz finally. 11 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Klasy do obsługi IO Odczyt pliku 1 FileReader (korzysta z systemowego kodowania). 2 BufferedReader (korzysta z buforowania). Łańcuchowanie umożliwia wykorzystanie obiektu danej klasy jako parametru konstruktora innej np. BufferedReader wej = new BufferedReader ( new FileReader (" plik ")); 12 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Klasy do obsługi IO Zapis pliku 1 FileWriter (korzysta z systemowego kodowania). 2 BufferedWriter (korzysta z buforowania). 3 PrintWriter (korzysta z buforowania). 13 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Odczyt pliku tekstowego z użyciem Scannera Odczyt pliku tekstowego Aby odczytać zawartość pliku tekstowego możemy skorzystać z klasy Scanner w następujący sposób: File plik = new File (" sciezkapliku "); Scanner odczyt = new Scanner ( plik ); Należy pamiętać, aby zamknąć plik po zakończeniu żądanych operacji (wykorzystując metodę close). 14 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład public static void main ( String [] args ) throws IOException File plik = new File (" sciezkapliku "); if (! plik. exists ()) plik. createnewfile (); Scanner odczyt = new Scanner ( plik ); String pierwszalinijka = odczyt. nextline (); System. out. println ( pierwszalinijka ); odczyt. close (); 15 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zadanie 1 Przerób przykładowy program tak, aby nie pojawiał się wyjątek (zabezpiecz go przed sytuacją, gdy w pliku nie ma tekstu). 16 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Odczyt pliku tekstowego z użyciem FileReadera Opis Aby odczytać zawartość pliku tekstowego z wykorzystaniem FileReadera należy go zaimportować: import java.io. FileReader ; Klasa traktuje plik jako strumień znaków. 17 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład dla FileReadera public static void main ( String [] args ) throws IOException File plik = new File (" sciezkapliku "); if (! plik. exists ()) plik. createnewfile (); FileReader odczyt = new FileReader ( plik ); int znak ; while (( znak = odczyt. read ())!= -1) System. out. print (( char ) znak ); odczyt. close (); 18 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zadania 1 Utwórz plik tekstowy zawierający tekst Ala ma kota. Korzystając z klasy FileReader napisz metodę wypisującą wszytkie znaki znajdujące się w pliku do momentu znalezienia litery k. Niech jako parametr metody będzie przekazywana ścieżka do pliku. 2 Utwórz plik tekstowy zawierający dwie linijki tekstu. Napisz metodę przyjmującą jako parametr ścieżkę pliku i zwracającą jego pierwszą linijkę. Wykorzystaj FileReadera. 3 Napisz metodę przyjmującą jako parametr ścieżkę pliku i zwracającą liczbę znaków znajdujących się w nim. Skorzystaj z FileReadera. 19 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Odczyt pliku tekstowego z użyciem BufferedReadera Opis Aby odczytać zawartość pliku tekstowego z wykorzystaniem BufferedReadera należy go zaimportować: import java. io. BufferedReader ; 20 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład dla BufferedReadera public static void main ( String [] args ) throws IOException File plik = new File (" sciezkapliku "); if (! plik. exists ()) plik. createnewfile (); FileReader odczyt = new FileReader ( plik ); BufferedReader odczytbuforowany = new BufferedReader ( odczyt ); System. out. print ( odczytbuforowany. readline ()); odczytbuforowany. close (); 21 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zadanie 1 Napisz metodę porownanie, która będzie pobierała jako parametry ścieżki dwóch plików. Ma ona wypisać wszystkie linijki, które nie są identyczne w obu plikach. Wykorzystaj BufferedReadera. 22 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zapis do pliku tekstowego Inicjalizacja obiektu klasy PrintWriter Aby zapisać wartość do pliku tekstowego możemy skorzystać z klasy PrintWriter, której obiekt można zainicjować w następujący sposób: PrintWriter zapis = new PrintWriter (" nazwapliku "); Aby móc korzystać z klasy musimy ją zaimportować: import java. io. PrintWriter ; Należy pamiętać, aby zamknąć plik po zakończeniu żądanych operacji wykorzystując metodę close. 23 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład z nadpisywaniem zawartości pliku public static void main ( String [] args ) throws IOException PrintWriter zapis = new PrintWriter (" test "); zapis. println (" test "); zapis. flush (); zapis. close (); 24 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład 2 public static void main ( String [] args ) throws IOException Boolean czydopisac = true ; File plik = new File (" test "); PrintWriter zapis = new PrintWriter ( new FileOutputStream ( plik, czydopisac )); zapis. println (" test "); zapis. flush (); zapis. close (); 25 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przegląd najważniejszych metod Metoda ptintln(tekst) print(wartosc) close() flush() Opis Wpisanie do pliku tekstu i zakończenie go znakiem nowej linii Wpisanie do pliku wartości wartosc Zamknięcie pliku Przesunięcie buforowanych danych do strumienia 26 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zapis do pliku tekstowego z użyciem FileWritera Zapis pliku tekstowego Aby zapisać wartość do pliku tekstowego z wykorzystaniem FileWritera należy go zaimportować: import java.io. FileWriter ; 27 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład dla FileWritera public static void main ( String [] args ) throws IOException Boolean czydopisac = true ; File plik = new File (" sciezkapliku "); FileWriter zapis = new FileWriter ( plik, czydopisac ); zapis. write (" tekst "); zapis. close (); 28 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zapis do pliku tekstowego z użyciem BufferedWritera Opis Aby zapisać wartość do pliku tekstowego z wykorzystaniem BufferedWritera należy go zaimportować: import java. io. BufferedWriter ; 29 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Przykład dla BufferedWritera public static void main ( String [] args ) throws IOException Boolean czydopisac = true ; File plik = new File (" sciezkapliku "); FileWriter zapis = new FileWriter ( plik, czydopisac ); BufferedWriter zapisbuforowany = new BufferedWriter ( zapis ); zapisbuforowany. write (" tekst "); zapisbuforowany. flush (); zapisbuforowany. close (); 30 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zadania Niech wszystkie programy zawierają informacje o swoim przeznaczeniu i będą zabezpieczone przed sytuacją, gdy plik nie istnieje. 1 Napisz program zawierający metodę przyjmującą w parametrze ścieżkę do pliku, która wypisze na ekran jego zawartość. 2 Napisz program zawierający metodę przyjmującą w parametrze ścieżkę do pliku oraz zmienną typu int coile. Niech metoda otwiera wskazany plik i pobierze jego co n-tą linię (n=coile). Nastepnie tekst ma zostać odwrócony (podpowiedź: skorzystaj ze StringBuildera) i wypisany na ekran. 31 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zadania Niech wszystkie programy zawierają informacje o swoim przeznaczeniu i będą zabezpieczone przed sytuacją, gdy plik nie istnieje. 3 Napisz program zawierający dwie opcje - odczyt oraz zapis. Jeżeli użytkownik wybierze odczyt należy wypisać informacje przechowywane w pliku dane.txt (jeżeli plik jest pusty lub nie istnieje należy wyświetlić odpowiedni komunikat). Dla zapisu niech użytkownik ma możliwość wpisania imienia oraz nazwiska, po czym obie wartości powinny zostać zapisane do pliku dane.txt (jeżeli plik nie istnieje należy go utworzyć). 32 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Zadania Niech wszystkie programy zawierają informacje o swoim przeznaczeniu i będą zabezpieczone przed sytuacją, gdy plik nie istnieje. 4 Napisz program tworzący plik tekstowy zawierający 100 wylosowanych liczb całkowitych z przedziału od 0 do 10. 5 Napisz program, który odczytuje plik utworzony przez aplikację z zadania 4 i wypisuje na ekran posortowane rosnąco wartości. 33 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania

Dziękuję za uwagę 34 / 34 mgr inż. Krzysztof Szwarc Podstawy i języki programowania