systemy wejścia i wyjścia

Download Systemy wejścia i wyjścia

If you can't read please download the document

Upload: cirila

Post on 08-Jan-2016

48 views

Category:

Documents


2 download

DESCRIPTION

Systemy wejścia i wyjścia. Michał Wrona. Co to jest system wejścia i wyjścia?. P obierania informacji ze ź ródeł danych, zdolnych przesyłać sekwencje bajtów, oraz wysyłania informacji do każdego obiektu, który potrafi odebrać sekwencję bajtów. obsługa plików i katalogów, - PowerPoint PPT Presentation

TRANSCRIPT

  • Systemy wejcia i wyjciaMicha Wrona

  • Co to jest system wejcia i wyjcia?Pobierania informacji ze rde danych, zdolnych przesya sekwencje bajtw, oraz wysyania informacji do kadego obiektu, ktry potrafi odebra sekwencj bajtw.

    obsuga plikw i katalogw, zapisywanie do plikw, wczytywanie informacji z plikw.

  • Strumienie Strumie wejcia obiekt z ktrego moemy pobra sekwencj znakw, opisany przez klas abstrakcyjn InputStream. Strumie wyjcia Obiekt do ktrego moemy wysya sekwencj bajtw opisany klas OutputStream. Klasy Reader i Writer (2-bajtowe znaki Unicode).

  • Wczytywanie i zapisywanie bajtwKlasa InputStream posiada metod abstrakcyjn:abstract int read()Metoda ta wczytuje jeden bajt i zwraca jego warto lub -1, jeeli natrafi na zakoczenie rda danychAnalogicznie klasa OutputStream definiuje metod:abstract void write(int b)Ktra wysya jeden bajt do aktualnego wyjcia.

  • A dobre to?

  • Java.io.InputStream abstract int read() - pobiera jeden bajt i zwraca jego warto, -1 gdy koniec strumienia. int read(byte[] b) - wczytuje dane do tablicy i zwraca liczbe wczytanych bajtw. int read(byte[] b, int start, int dlugosc) long skip(long n) ignoruje n bajtw w strumieniu wejcia. int available () ilo dostpnych bajtw bez moliwoci blokowania.Java.io.OutputStream abstract void write(int i) zapisuje jeden bajt. void write(byte[] b) zapisuje wszystkie bajty w tablicy b. void write(byte[] b, int start, int dlugosc) .

  • Zoo pene strumieniW przeciwiestwie do jzyka C, ktry w zupenoci zadowala si jednym typem FILE, JAVA posiada cae zoo, ponad 60(!!)rnych typw strumieni.

  • Zoo pene strumieni(2)

  • Budowa filtrw strumieniA co jeli chcemy przeczyta np. liczby z pliku?

    Naley utworzy obiekt typu FileInputStream, a nastpnie przekaza go konstruktorowi DataInputStream. Nadal jednak operujemy na jednobajtowych operatorach zreszt popatrzmy:

  • Prawie jak zapisTo gdzie jest problem?

  • Zapisywanie tekstuZ pomoc przychodz nam klasy Writer. Obiekty tej klasy drukuj acuchy i liczby w formacie tekstowym.DataOutputStream = PrintWriterMusi ona by czona z FileWriter, lub FileOutputStream by poznaa obiekt docelowy zapisywanego tekstu. Naley rwnie pamieta o zamkniciu i oprnieniu strumienia wyjcia piszc close().

  • Wczytywanie tekstuMylisz e jest klasa analogiczna do DataInputStream, ktra pozwoli Ci czyta dane w formacie tekstowym..NIE. Ale jest i na to sposb w klasie BufferedReader jest metoda readLine() pozwalajca pobra linijk tekstu wiec

  • prawie robi du rnic

  • Zarzdzanie plikamiUmiemy zapisywa i odczytywa dane z plikw, jednak obsuga plikw to co wicej np.: wczytanie listy plikw w katalogu, sprawdzenie nazwy katalogu, rozmiaru pliku, sprawdzenie daty ostatniej modyfikacji, sprawdzenie czy plik jest do odczytu, czy do zapisu, tworzenie nowych katalogw, usuwanie plikw i katalogw.Wszystko to pozwala nam robi klasa File.

  • Lista plikw

  • Lepsza lista plikw

  • Java.io.File boolean delete() prbuje skasowa plik, jeeli si uda to zwraca true. void deleteOnExit() da, aby plik zosta skasowany po wyczeniu wirtualnej maszyny. boolean exists() zwraca true, jeeli dany plik lub katalog istnieje. boolean isHidden() zwraca true, jeeli dany plik jest ukryty. long lastModified() data ostatniej modyfikacji pliku lub 0 jak nie istnieje. Naley uy Date(long), by uzyska normalny czas. boolean createNewFile() boolean mkdir() boolean renameTo(File cel) ; cel obiekt File okrelajcy now nazw pliku. boolean setReadOnly() zmienia tryb na tylko do odczytu.

  • Bonus : czyli wyraenia regularneWyraenie regularne ma zazwyczaj nastpujc posta: Matcher liczba = Pattern.compile(Kod Regex).matcher(String); while (liczba.find()) { System.out.println(liczba.group()); }

    Najwaniejsze znaczki(reszta w pomocy programu): Bokrelony znak np. Literka B, \t \nznak tabulacji, nowej linii, [abc]dowolny znak z nawiasu,[^abc]dowolny znak ale nie ten z nawiasu (negacja), \sznak koca strony, spacja, nowa linia, tabulacja, \Sdowolny znak, z wyjtkiem biaych znakw, \d cyfra, \Ddowolny znak, ale nie cyfra, \wznak tworzcy sowa, \Wznaki bez pocztku sowa,

  • Szukaj, a znajdziesz

  • Dzikuj za uwag

    Mechanizmy wejscia i wyjscia nie sa moe zbyt ekscytujace , ale bez mozliwosci odczytu i zapisu danych nasze programy byy by stasznie ubogie. Niniejszy wykad dotyczy pobierania informacji ze zrde danych, zdolnych przesylac sekwencje bajtw , orazy wysylania informacji do kazdego obiektu , ktry potrafi ja odebra.*HIERARCHIA KLAS*Hierarchia klas*