1 / 20

Systemy wejścia i wyjścia

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,

cirila
Download Presentation

Systemy wejścia i wyjścia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy wejścia i wyjścia Michał Wrona

  2. Co to jest system wejścia i wyjścia? Pobierania 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, • zapisywanie do plików, • wczytywanie informacji z plików.

  3. Strumienie Strumień wejścia – obiekt z którego możemy pobrać sekwencję znaków, opisany przez klasę abstrakcyjną InputStream. Strumień wyjścia – Obiekt do którego możemy wysyłać sekwencję bajtów opisany klasą OutputStream. Klasy Reader i Writer(2-bajtowe znaki Unicode).

  4. Wczytywanie i zapisywanie bajtów Klasa InputStream posiada metodę abstrakcyjną: abstract int read() Metoda ta wczytuje jeden bajt i zwraca jego wartość lub -1, jeżeli natrafi na zakończenie źródła danych Analogicznie klasa OutputStream definiuje metodę: abstract void write(int b) Która wysyła jeden bajt do aktualnego wyjścia.

  5. A dobre to?

  6. Java.io.InputStream Java.io.OutputStream 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 bajtów. int read(byte[] b, int start, int dlugosc) long skip(long n) – ignoruje n bajtów w strumieniu wejścia. int available () – ilość dostępnych bajtów bez możliwości blokowania. • 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) .

  7. Zoo pełne strumieni W przeciwieństwie do języka C, który w zupełności zadowalał się jednym typem FILE, JAVA posiada całe zoo, ponad 60(!!)różnych typów strumieni.

  8. Zoo pełne strumieni(2)

  9. Należy utworzyć obiekt typu FileInputStream, a następnie przekazać go konstruktorowi DataInputStream. Nadal jednak operujemy na jednobajtowych operatorach… zresztą popatrzmy: Budowa filtrów strumieni A co jeśli chcemy przeczytać np. liczby z pliku?

  10. Prawie jak zapis… To gdzie jest problem?

  11. Zapisywanie tekstu Z pomocą przychodzą nam klasy Writer. Obiekty tej klasy drukują łańcuchy i liczby w formacie tekstowym. DataOutputStream = PrintWriter Musi ona być łączona z FileWriter, lub FileOutputStream by poznała obiekt docelowy zapisywanego tekstu. Należy również pamietać o zamknięciu i opróżnieniu strumienia wyjścia pisząc close().

  12. Wczytywanie tekstu Myślisz że jest klasa analogiczna do DataInputStream, która pozwoli Ci czytać dane w formacie tekstowym..NIE. Ale jest i na to sposób – w klasie BufferedReader jest metoda readLine() pozwalająca pobrać linijkę tekstu wiec…

  13. …prawie robi dużą różnicę

  14. Zarządzanie plikami Umiemy zapisywać i odczytywać dane z plików, jednak obsługa plików to coś więcej np.: wczytanie listy plików w katalogu, sprawdzenie nazwy katalogu, rozmiaru pliku, sprawdzenie daty ostatniej modyfikacji, sprawdzenie czy plik jest do odczytu, czy do zapisu, tworzenie nowych katalogów, usuwanie plików i katalogów. Wszystko to pozwala nam robić klasa File.

  15. Lista plików

  16. Lepsza lista plików

  17. Java.io.File booleandelete() – próbuje skasować plik, jeżeli się uda to zwraca true. voiddeleteOnExit() – żąda, aby plik został skasowany po wyłączeniu wirtualnej maszyny. booleanexists() – zwraca true, jeżeli dany plik lub katalog istnieje. booleanisHidden() zwraca true, jeżeli dany plik jest ukryty. long lastModified() data ostatniej modyfikacji pliku lub 0 jak nie istnieje. Należy użyć Date(long), by uzyskać „normalny” czas. booleancreateNewFile() booleanmkdir() booleanrenameTo(File cel) ; cel – obiekt File określający nową nazwę pliku. booleansetReadOnly() zmienia tryb na tylko do odczytu.

  18. Bonus : czyli wyrażenia regularne • Najważniejsze „znaczki”(reszta w pomocy programu): • B określony znak np. Literka B, • \t \n znak tabulacji, nowej linii, • [abc] dowolny znak z nawiasu, • [^abc] dowolny znak ale nie ten z nawiasu (negacja), • \s znak końca strony, spacja, nowa linia, tabulacja, • \S dowolny znak, z wyjątkiem „białych znaków”, • \d cyfra, • \D dowolny znak, ale nie cyfra, • \w znak tworzący słowa, • \W znaki bez początku słowa, Wyrażenie regularne ma zazwyczaj następującą postać: Matcher liczba = Pattern.compile(„Kod Regex”).matcher(String); while (liczba.find()) { System.out.println(liczba.group()); }

  19. Szukaj, a znajdziesz

  20. Dziękuję za uwagę

More Related