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

Podobne dokumenty
Strumienie i serializacja

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

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

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

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

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

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

Podstawy i języki programowania

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

dr Krzysztof Podlaski

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

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

Przygotował: Jacek Sroka 1. Java SE. Strumienie

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

Gniazda komunikacji sieciowej w środowisku Java

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

Platformy Programistyczne Zagadnienia sieciowe i wątki

Programowanie Obiektowe (Java)

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

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

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

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 WYKŁAD

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

Programowanie obiektowe

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

Aplikacja wielowątkowa prosty komunikator

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

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

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

Schemat dla UDP. = możliwe zablokowanie aplikacji KLIENT SERWER. s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,...

Komunikacja z użyciem gniazd aplikacje klient-serwer

Aplikacja wielow tkowa prosty komunikator

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

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

Strumienie, pliki. Sortowanie. Wyjątki.

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

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

Programowanie rozproszone w języku Java

Operacje wejścia/wyjścia (odsłona druga) - pliki

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

Programowanie Obiektowe Java

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

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

Java a dost p do Internetu.

JAVA I SIECI. MATERIAŁY:

Programowanie współbieżne i rozproszone

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

akademia androida Składowanie danych część VI

Wybrane działy Informatyki Stosowanej

WSNHiD, Programowanie 2, Lab. 3. Trwałość danych

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

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

Bezpieczne uruchamianie apletów wg

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

Java: Graficzne interfejsy użytkownika

Wykład 2: Podstawy Języka

Programowanie Obiektowe Java

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

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

Networking. Zaawansowane technologie Javy 2019

Przykład. Podaj nazwę domenową hosta a odczytaj jego adres IP, lub odwrotnie:

Java programowanie sieciowe

Przykłady interfejsu TCP i UDP w Javie

Strumienie, pliki. Sortowanie. Wyjątki.

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

Wykład 4. Tablice. Pliki

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Podstawowe pojł cia. Czego sił nauczymy? Pojł cia hosta. Hosty Adresowanie Internetowe Porty Protokoóy

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

Programowanie aplikacji w architekturze Klient-Serwer - UDP

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

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

URL. Budowa URL (ang. Uniform Resource Locator): working#downloading

C++ - [3-5] Pliki i strumienie w C++

Korzystanie z bibliotek standardowych

Serwer współbieżny połączeniowy

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Adresy URL. Zaawansowane technologie Javy 2019

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Pliki. Operacje na plikach w Pascalu

Podstawy obiektowości

Programowanie i struktury danych

Kurs programowania. Wykład 9. Wojciech Macyna

Dokumentacja do API Javy.

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

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

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

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Programowanie w językach

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

Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017

Obiekty sieciowe - gniazda Komputery w sieci Internet komunikują się ze sobą poprzez:

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project

Programowanie Procedurale. Pliki w języku C++

Podstawowe typy serwerów

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Transkrypt:

Wykład 10 05 maja 2016

Biblioteka wejścia/wyjścia (Input/Output) import java.io.*; Umożliwia przechowywania danych na nośniku zewnętrznym Dane moga być wysyłane do plików, na drukarkę, do bufora pamięci, na wyjście standardowe,... Dane moga być czytane z plików, bufora pamięci, standardowego wejścia,... Wejście/Wyjście w Javie deklarujemy za pomoca tak zwanych strumieni (Streams) Strumieniem nazywamy uporzadkowany ciag danych (bez określonej długości) Klasy w Javie dzielimy na dwie główne kategorie Strumienie bajtowe (Byte Streams) Strumienie znakowe (Character Streams)

Biblioteka wejścia/wyjścia (Input/Output) Podklasy InputStream i OutputStream: FileInputStream i FileOutputStream Podklasy Reader i Writer: FileReader i FileWriter Pozwalaja odczytywać i zapisywać pliki dyskowe. Jako parametr konstruktora przekazujemy nazwę pliku dyskowego lub wskazujacy go obiekt File. Tworzac obiekt wyjściowy, jako drugi argument konstruktora, można przekazać wartość logicznia określajac a czy zamiast zamazywać istniejacy plik dopisywać kolejne dane na jego końcu.

Biblioteka wejścia/wyjścia (Input/Output) Podklasy InputStream i OutputStream: ByteArrayInputStream i ByteArrayOutputStream Podklasy Reader i Writer: CharArrayReader i CharArrayWriter Bufor w pamięci oparty na tablicy odpowiednio bajtów lub znaków. Tworzac obiekt wejściowy, przekazujemy konstruktorowi tablicę, na której ma być oparty. Tworzac obiekt wyjściowy, przekazujemy konstruktorowi poczatkowy rozmiar bufora.

Biblioteka wejścia/wyjścia (Input/Output) Podklasy InputStream i OutputStream: StringBufferInputStream (nie ma odpowiednika do zapisu) Podklasy Reader i Writer: StringReader i StringWriter Bufor w pamięci oparty na klasie String (implementacja posługuje się obiektem StringBuffer). Tworzac obiekt wejściowy, przekazujemy konstruktorowi napis, na którym ma być oparty. Tworzac obiekt wyjściowy przekazujemy konstruktorowi poczatkowy rozmiar bufora. Zaleca się używanie klas z hierarchii Reader/Writer. StringBufferInputStream jest oznaczony jako deprecated.

Biblioteka wejścia/wyjścia (Input/Output) Podklasy InputStream i OutputStream: PipedInputStream i PipedOutputStream Podklasy Reader i Writer: PipedReader i PipedWriter Łacze do komunikacji między procesami. Przy pomocy konstruktora bezparametrowego należy najpierw utworzyć obiekt jednego rodzaju (wejściowy lub wyjściowy), a następnie przekazać go jako parametr konstruktora obiektu drugiego rodzaju (odpowiednio wyjściowego lub wejściowego). Strumienie zostana połaczone łaczem, które będzie przesyłać dane od strumienia wyjściowego do wejściowego.

Przykład zliczajacy liczbę bajtów w pliku CountBytes.java 1 import java. io.*; 2 3 class CountBytes { 4 public static void main ( String [] args ) 5 throws FileNotFoundException, IOException 6 { 7 FileInputStream in ; 8 in = new FileInputStream (" InFile. txt " ); 9 int total = 0; 10 11 while ( in. read ()!= -1) total ++; 12 13 System. out. println ( total + " bytes " ); 14 } 15 }

Klasa File Przechowuje informacje o pliku i katalogach Przykładowe metody klasy: mkdir() - założenie katalogu; delete() - kasowanie pliku; exists() - sprawdzenie, czy plik istnieje. Wyjatki: EOFException - koniec pliku; FileNotFoundException - plik nie mógł zostać otwarty; InterruptedIOException - I/O przerwany; IOException - ogólny wyjatek I/O. Tworzenie pliku 1 File infile = new File (" FileIn. txt " ); 2 in = new FileInputStream ( infile );

Przykład odczytu i zapisu bajtów ReadWriteFilter.java 1 import java. io.*; 2 public class ReadWriteFilter { 3 public static void main ( String args []) throws IOException { 4 FileOutputStream fos = new FileOutputStream (" mydata " ); 5 DataOutputStream dos = new DataOutputStream ( fos ); 6 dos. writeint (23); 7 dos. writedouble (145.10); 8 dos. writeint ( 'B ' +1); 9 dos. writeboolean ( true ); 10 dos. writechar ( 'Y '); 11 dos. close (); 12 fos. close (); 13 FileInputStream fis = new FileInputStream (" mydata " ); 14 DataInputStream dis = new DataInputStream ( fis ); 15 System. out. println ( dis. readint ()); 16 System. out. println ( dis. readdouble ()); 17 System. out. println ( dis. readint ()); 18 System. out. println ( dis. readboolean ()); 19 System. out. println ( dis. readchar ()); 20 dis. close (); 21 fis. close (); 22 } 23 }

Strumienie w C++ Klasa std::istream i jej podklasy iostream, ifstream, istringstream. Klasa std::ostream i jej podklasy iostream, ofstream, ostringstream. Podklasy iostream: fstream, stringstream.

Gniazdka sieciowe Adres gniazda sieciowego Adres gniazda składa się z adresu komputera (hosta) i numeru portu komunikacji sieciowej. Adres komputera może być w postaci nazwy tekstowej zgodnej z wymogami odpwiedniego serwisu nazewniczego, adresu IP w postaci tekstowej lub numerycznej.

java.net.serversocket Konstruktory ServerSocket(int port) throws IOException utworzenie gniazdka serwera nasłuchujacego na porcie port. Metody Socket accept() throws IOException utworzenie gniazdka właściwego połaczenia z klientem. void close() throws IOException zamknięcie gniazdka serwera.

java.net.socket Konstruktory Metody Socket(String host, int port) throws UnknownHostException, IOException utworzenie gniazdka klienta łacz acego się z gniazdkiem serwera host na porcie port. void close() throws IOException zamknięcie gniazdka serwera. InputStream getinputstream() throws IOException pobranie strumienia wejściowego. OutputStream getoutputstream()throws IOException pobranie strumienia wyjściowego.

Przykład użycia SocketServer.java przykład serwera. SocketClient.java przykład klienta.