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

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

dr Krzysztof Podlaski

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

Strumienie i serializacja

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

Programowanie w języku Java WYKŁAD

Programowanie Obiektowe (Java)

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

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

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki.

Przygotował: Jacek Sroka 1. Java SE. Strumienie

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

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Języki i Techniki Programowania II. Wykład 6. Wejście/Wyjście

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

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

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

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

Aplikacje w Javie wykład 9 Strumienie

Programowanie obiektowe

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

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

Programowanie Obiektowe Java

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

System obsªugi wej±cia i wyj±cia.

Programowanie obiektowe

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

Programowanie Obiektowe Java

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

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

Podstawy i języki programowania

Korzystanie z bibliotek standardowych

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

Java niezbędnik programisty spotkanie nr 11. Importy statyczne, wejście/wyjście, wyrażenia regularne, serializacja

Biblioteka standardowa - operacje wejścia/wyjścia

Platformy Programistyczne Zagadnienia sieciowe i wątki

Strumienie tekstowe (wprowadzanie danych z klawiatury) i bajtowe, otwieranie strumieni przez sieć - obiekty URL

Java: Graficzne interfejsy użytkownika

Wybrane działy Informatyki Stosowanej

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

Apilkacje w środowisku Java - wykład 10 Strumienie

Gniazda komunikacji sieciowej w środowisku Java

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

Aplikacje w Javie wykład 9 Strumienie

Zaawansowane techniki programowania C#

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

Bezpieczne uruchamianie apletów wg

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

Wykład 4. Tablice. Pliki

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

Programowanie 3 - Funkcje, pliki i klasy

Pracownia Komputerowa wyk ad VII

76.Struktura oprogramowania rozproszonego.

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

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

I/O (STRUMIENIE, PLIKI,...)

Programowanie współbieżne i rozproszone

Programowanie w środowisku graficznym- wykład 8 Kolekcje c.d. ( mapy) Strumienie Wątki-podstawy

Funkcje zawarte w bibliotece < io.h >

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

Język C++ Różnice między C a C++

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Systemy liczenia. 333= 3*100+3*10+3*1

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Funkcje zawarte w bibliotece < io.h >

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

Java. Michał Wójcik.

JAVA I SIECI. MATERIAŁY:

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Programowanie w języku Java

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

Programowanie obiektowe zastosowanie języka Java SE

Pracownia Komputerowa wykład IV

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

Programowanie w języku Java (OCA+OCP)

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

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

Wykład PASCAL - Pliki tekstowe

Wykład 2 Składnia języka C# (cz. 1)

external Data Representation

Materiały do laboratorium I

Przetwarzanie i transmisja danych multimedialnych. Wykład 5 Kodowanie słownikowe. Przemysław Sękalski.

Pracownia Komputerowa wyk ad IV

Adresy URL. Zaawansowane technologie Javy 2019

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Pracownia Komputerowa wykład V

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Wykład 2: Podstawy Języka

Technologie informacyjne (3) Zdzisław Szyjewski

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Podstawy programowania w języku C++

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2)

Programowanie w języku Java

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Technologie informacyjne (3) Zdzisław Szyjewski

W języku C każdy plik fizyczny jest ciągiem bajtów, z których każdy może być niezależnie odczytany. Borland 01234

Transkrypt:

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

Pojęcie strumienia Strumień reprezentuje źródło lub odbiorcę danych (obiekt zdolny odbierać lub produkować dane). Strumień ukrywa szczegóły związane z rzeczywistymi operacjami wykonywanymi na danych w urządzeniach we/wy. Hierarchię klas biblioteki we/wy moŝna podzielić ze względu na kierunek przepływu danych (wejście i wyjście) oraz na elementarne jednostki danych

Strumienie: bajtowe InputStream OutputStream znakowe Reader Writer Strumienie bajtów stosuje się do danych binarnych (obraz, dźwięk), strumienie znakowe do sformatowanych danych liczbowych i oczywiście tekstu. Preferować znakowe (Unicode, efektywniejsze)

Unicode (UCS) Reprezentacja 2-bajtowa MoŜliwość prezentacji, wymiany i przetwarzania tekstów w róŝnych językach Około 50 000 znaków www.unicode.org 127 pierwszych znaków jest zgodnych z ASCII 256 pierwszych ISO 8859-1

UTF-8 Pewne sekwencje bajtów posiadają specjalne znaczenie w róŝnych systemach operacyjnych. Unicode moŝe być niebezpieczny! UTF (UCS Transformation Format) UTF-8 : 1 bajt dla ASCII,2 bajty dla znaków 8-bitowych i 3 bajty dla pozostałych

Klasy przedmiotowe i przetwarzające Hierarchia klas strumieniowych obejmuje tzw. klasy przedmiotowe to jest związane z konkretnym źródłem lub odbiorcą danych (tablica, łańcuch znaków, plik,) potok...)* oraz klasy przetwarzające (dekoracyjne), których zadanie polega na dostarczeniu dodatkowych uŝytecznych własności (nazywane teŝ filtrami). Przykładem klasy dekoracyjnej jest DataInputStream umoŝliwiająca odczyt ze strumienia danych wszystkich podstawowych typów (readbyte(), readfloat()...) i stringów. Odwrotne usługi oferuje DataOutputStream. * Nazywane równieŝ strumieniami ujścia danych

Typy strumieni wejściowych ByteArrayInputStream Z bufora w pamięci. StringBufferInputStream Ze String-u FileInputStream Z pliku PipedInputStream Z potoku FilterInputStream Interfejs dla klas dekoracyjnych

Typy strumieni wyjściowych ByteArrayOutputStream Do bufora w pamięci. >>StringBufferOutputStream<< Uwaga! Nie ma! String jest niezmienny FileOutputStream Do pliku PipedOutputStream Do potoku FilterOutputStream Interfejs dla klas dekoracyjnych

Wejściowe klasy dekoracyjne DataInputStream BufferedInputStream BufferedReader LineNumberInputStream LineNumberReader PushbackInputStream PushbackReader InflaterInputStream Pozwalają na odczytywanie typów prostych. Zapewniają buforowanie Zapewniają numerację wierszy Pozwalają na zwracanie odczytanego znaku dekompresja

Wyjściowe klasy dekoracyjne DataOutputStream BufferedOutputStream BufferedWriter PrintStream PrintWriter DeflaterOutputStream Pozwala na zapisywanie typów prostych. writefloat()... Zapewniają buforowanie Do wypisywania typów prostych w czytelny sposób) kompresja

Łańcuchy strumieni Strumienie zwiększają swoje moŝliwości gdy wyjście jednego strumienia połączymy do wejścia innego tworząc łańcuch.

Przykład File f = new File ( phrases.utf ) ; FileReader r = new FileReader(f); BufferedReader in = new BufferedReader(r); String line = in.readline() ; //unexpected result! // System.getProperty( file.encoding ) ;

Readers & Writers Z uwagi na operowanie kodami Unicode (internacjonalizacja) biblioteki we/wy w języku Java uległy w wersji 1.1 gruntownej modyfikacji (rozbudowie) Są sytuacje gdy w programie uŝywa się zarówno klas bajtowych jak i znakowych wówczas poŝyteczne mogą być klasy konwerujące: InputStream InputStreamReader Reader OutputStream OutputStreamWriter Writer

Przykład again File f = new File ( phrases.utf ) ; FileInputStream is = new FileInputStream(f); InputStreamReader in = new InputStreamReader (is, UTF8 ); BufferedReader in = new BufferedReader(in); String line = in.readline() ; // is ok

Odpowiedniki znakowe klas przedmiotowych InputStream OutputStream FileInputStream FileOutputStream StringBufferInputStream Brak odpowiednika ByteArrayInputStream ByteArrayOutputStream PipedInputStream PipedOutputStream Reader Writer FileReader FileWriter StringReader StringWriter CharArrayReader CharArrayWriter PipedReader PipedWriter

Odpowiedniki znakowe klas dekoracyjnych FilterInputStream FilterOutputStream BufferedInputStream BufferedOutputStream DataInputStream PrintStream LineNumberInputStream StreamTokenizer PushBackInputStream FilterReader FilterWriter BufferedReader BufferedWriter DataInputStream! PrintWriter LineNumberReader StreamTokenizer(Reader) PushBackReader

RandomAccessFile Pliki zbudowane z rekordów o znanej długości, do których uzyskuje się dostęp przez zmianę połoŝenia wskaźnika (seek()) obsługiwane są przez klasę RandomAccessFile