Strumienie, pliki. Sortowanie. Wyjątki.



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

Podstawy i języki programowania

Zajęcia 6 pliki tekstowe

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

Biblioteki wejścia/wyjścia. Strumienie we/wy (I/O)

Programowanie 3 - Funkcje, pliki i klasy

Strumienie i serializacja

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

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

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

Bezpieczne uruchamianie apletów wg

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

Programowanie w języku Java

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Inynieria oprogramowania Lecture XXX. Java TM cz IV: IO. Bartosz Walter

dr Krzysztof Podlaski

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Wstęp do Java. Operacje Wejścia-Wyjścia Programowanie Wielowątkowe. dr Krzysztof Podlaski. Wydział Fizyki i Informatyki Stosowanej

Języki programowania imperatywnego

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

Podstawy i języki programowania

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

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

Wykład 4. Tablice. Pliki

akademia androida Składowanie danych część VI

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wykład 2. Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni poprzez sieć - obiekty URL

INFORMATYKA Studia Niestacjonarne Elektrotechnika

I znowu można jak w C, za pomocą starych struktur i metod:

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

ALGORYTMY I STRUKTURY DANYCH

KOMUNIKACJA MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

Rozdział 7 Strumienie, operacje wejścia-wyjścia

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

program TRX

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

Wybrane algorytmy tablicowe

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

Łukasz Przywarty Wrocław, r. Grupa: WT/N 11:15-14:00. Sprawozdanie z zajęć laboratoryjnych: OpenSSL - API

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

Biblioteka standardowa - operacje wejścia/wyjścia

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

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

Programowanie w językach wysokiego poziomu

lekcja 8a Gry komputerowe MasterMind

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

K O M U N I K A C J A MIĘDZYPROCESOWA O B S Ł U G A WEJŚCIA/WYJŚCIA

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Programowanie w językach

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Informatyka 2015/16 wykład 9. Pliki Sterowanie przebiegiem programu cz. 2. Dr inż. Witold Nocoń (p. 230)

Programowanie w języku Java

Katalog książek cz. 2

Podstawy i języki programowania

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

Podstawy i języki programowania

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

JAVA I SIECI. MATERIAŁY:

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

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Pliki. Operacje na plikach w Pascalu

1 Powtórzenie wiadomości

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Projekty zaliczeniowe Podstawy Programowania 2012/2013

1 Moduł Modbus ASCII/RTU 3

Języki i metody programowania Java INF302W Wykład 4

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Przygotował: Jacek Sroka 1. Java SE. Strumienie

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

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

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

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

MATERIAŁY POMOCNICZE DO ĆWICZENIA 1 Aplikacja w języku Java. Pakiety i biblioteki Javy. Kompilacja i wykonanie programu Javy

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

LISTA 5. C++ PETLE for, while, do while

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

* WWW: * * Adres: Instytut Informatyki ul. Będzińska Sosnowiec Pokój 214 * Telefon:

Platformy Programistyczne Zagadnienia sieciowe i wątki

Orientacja pojedynczego zdjęcia

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Języki i techniki programowania Ćwiczenia 2

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

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2010 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Programowanie obiektowe

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.

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

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

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

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Spis treści. 1 Moduł Modbus TCP 4

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Transkrypt:

Strumienie, pliki. Sortowanie. Wyjątki.

Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy sami Można podejrzeć W Javie operacje wejścia wyjścia dokonywane są za pomocą strumieni. Strumień to abstrakcyjny ciąg danych taki, że dane wprowadzone na jednym końcu pojawiają się na drugim końcu (jak na taśmie). Strumień wyjściowy ma swój początek w aplikacji, a koniec w innym urządzeniu (ekran, plik). Strumień wyjściowy reprezentowany jest przez System.out, a wejściowy przez System.in. Aby operować na strumieniach musimy zaimportować pakiet java.io: Import java.io.*;

Serializacja Zwykły tekst

1. Podaj ścieżkę do pliku w odpowiednim miejscu. 2. Zdefiniuj jaki plik zapisujesz/odczytujesz 3. Dokonaj operacji zapisu/odczytu 4. Zamknij plik.

FileReader FileWriter BufferedReader BufferedWriter FileInputStream InputStreamReader FileOutputStream OutputStreamWriter File PrintWriter Używają systemowego kodowania. Szybsze, używają buforowania. Można ustawić swoje własne kodowanie, funkcje te są łańcuchowane. FileReader pliki tekstowe, InputStreamReader pliki binarne.

Funkcji tych można użyć bezpośrednio ALBO

Wykorzystać to co stworzyliśmy wcześniej jako punkt startu dla innych klas dających większą funkcjonalność jak BufferedReader i BufferedInputStream. BufferedReader in = new BufferedReader( new FileReader( plik.txt )); BufferedInputStream in = new BufferedInputStream( new InputStreamReader( plik.txt )); plik.txt jest odczytywany przez InputStreamReader; klasa ta odczytuje surowe dane (bajtowo); przekazuje bajty do kolejnej klasy BufferedReader, która konwertuje bajty na znaki, a do tego buforuje wejście

Ryzykowne operacje zawiera się w blokach try Gdy coś złego się stanie program wygeneruje wyjątek Ów wyjątek jest łapany (stąd catch ) i może zostać obsłużony Dzięki temu program rzadziej się wysypuje Blok finally wykona się zawsze, niezależnie od błędów Literatura: http://www.javaworld.com/jw-07-1998/jw-07-exceptions.html

1. Napisz funkcję, która przyjmuje w parametrze ścieżkę do pliku, a następnie wyświetla na ekran co drugą linijkę. 2. Napisz funkcję, która odczytuje zawartość pliku, a następnie wypisuje plik w odwrotnej kolejności. 3. Ściągnij plik http://tomaszx.pl/materialy/parser.csv i napisz program, który wylicza średnią z podanych tam liczb. Podpowiedź: google: String split java oraz klasa Integer

Można tak Gdzie zap.newline() wstawia końca linii dla plików (taki jaki jest właściwy dla danego systemu operacyjnego: Windows i OS/2 - \r\n Unix - \n Mac - \r

Albo tak (bez buforowania). Wtedy trzeba uważać na line.seperator.

1. Pamiętaj, że buforowane wyjście należy czyścić, a pliki zamykać! 2. Klasa PrintWriter, jak również wszystkie inne poznane, mają wiele użytecznych metod, warto je poznać. 3. Za pomocą klasy File możesz zmieniać strukturę katalogów: tworzyć, kasować, odczytywać, sprawdzać czy plik istnieje itp. 4. FileReader może bezpośrednio odczytywać plik, ale robi to bardzo wolno. 5. Parsowanie pliku tekstowego jest zadaniem wymagającym wiedzy o tym jak on jest zbudowany.

1. Wykorzystaj funkcje do generowania dowolnej tablicy z poprzednich zajęć. Zapisz trzy dowolne tablice, co najmniej 5x5 do jednego pliku. 2. Zapisz tabliczkę mnożenia do pliku. 3. Za pomocą klasy File stwórz nowy katalog i skopiuj stworzony przedtem plik tekstowy do nowego katalogu. Wykorzystaj funkcję exists() oraz inne potrzebne. http://download.oracle.com/javase/1.5.0/docs/api/java/io/file.html 4. Wykorzystaj plik parser.txt. Odczytaj wszystkie liczby z pliku, a następnie zapisz je do nowego pliku w kolejności rosnącej.

5. W akwarium znajdują się rozwielitki (małe skorupiaki, zwane także dafniami). W chwili t = 0 ilość rozwielitek wynosiła 1000. Po każdej jednostce czasu ilość rozwielitek podwaja się. Ponieważ jednak akwarium ma ograniczone rozmiary, więc zbyt wielka ilość rozwielitek powoduje ich wymieranie. Przyjmiemy, że jeśli ilość żyjątek przekroczy 50 tysięcy, wtedy w ciągu najbliższej jednostki czasu rozwielitki nie rozmnażają się, lecz ginie 99% ich populacji. Oblicz, ile będzie rozwielitek w akwarium po upływie 100 jednostek czasu. Znajdź największą i najmniejszą ilość rozwielitek, jaka znajdowała się w akwarium w okresie rozważanym w poprzednim podpunkcie. Utwórz tabelkę obrazującą zależność liczby rozwielitek od czasu w okresie od 0 do 25 jednostek. Tabelkę umieść w pliku tekstowym.

6. Oblicz liczbę znaków zawartych w pliku tekstowym. 7. Napisać program, który pozwoli obliczyć liczbę wierszy tekstu. Przeglądane powinny być wszystkie znaki tekstu, a obliczanie liczby wierszy powinno odbywać się dopiero w momencie zakończenia przeglądania danego wiersza. 8. Napisać program obliczający liczbę słów w pliku tekstowym zakładając, że poszczególne słowa są oddzielone spacjami, tabulatorami lub znakami końca linii. 9. Napisać program porównujący zawartość 2 plików tekstowych. Algorytm powinien polegać na sprawdzeniu równości znaków do końca krótszego pliku, a następnie w przypadku pozytywnego wyniku na sprawdzeniu długości plików.

Zadanie polega na stworzeniu dwóch funkcji: void szyfruj(string nazwawe, int przesun) void deszyfruj(string nazwawe, int przesun) Funkcja szyfruj dokonuje szyfrowania pliku, którego nazwa podana została jako pierwszy parametr. Szyfrowanie polega na zamianie każdej litery na znak przesunięty o wartość podaną drugim parametrem np. dla przesunięcia równego 2 literka 'a' powinna zostać zastąpiona literką 'c', literka 'z' literką 'b' itp. Wynikiem działania funkcji ma być plik o nazwie utworzonej na podstawie nazwy pliku wejściowego poprzez dołączenie znaku '_' np. dla pliku dane.txt zaszyfrowana postać powinna mieć nazwę _dane.txt. Funkcja deszyfruj powinna deszyfrować plik (niekoniecznie ten sam) zaszyfrowany przez funkcję szyfruj.

Napisać program, którego zadaniem jest odczytanie danych tabelarycznych w pliku tekstowym, a następnie zapisanie ich do nowego pliku w postaci kodu HTML. Wejście: "Waga" "Wzrost" "BMI" "Nadwaga" 70 1,8 21,6 "NIE" 67 1,77 21,39 "NIE" 85 1,7 29,41 "TAK" 100 1,92 27,13 "TAK" Wynik: <html><body> <table> <tr><td>"waga"</td><td>"wzrost"</td><td>"bmi"</td><td>"nadwaga" </td></tr> <tr><td>70</td><td>1,8</td><td>21,6</td><td>"nie" </td></tr> <tr><td>67</td><td>1,77</td><td>21,39</td><td>"nie" </td></tr> <tr><td>85</td><td>1,7</td><td>29,41</td><td>"tak" </td></tr> <tr><td>100</td><td>1,92</td><td>27,13</td><td>"tak"</td></tr> </table> </body></html>