
Istotne. Będziemy wspominać o tym na początku każdego z warsztatów, żeby ułatwić Ci zrozumienie materiałów. Ten warsztat został nagrany w Java 17. Testy w tym warsztacie również odnoszą się do Java 17. Ma to o tyle znaczenie, że jeżeli będziesz korzystać z nowszych wersji Java, to teoretycznie mogły tam nastąpić jakieś kosmetyczne zmiany. Dlatego dla spójności, zalecamy korzystanie z JDK 17, żeby Twoje przykłady zachowywały się tak jak na nagraniach, ale nie zabraniamy korzystać z nowszego JDK. Pamiętajmy, że Java z założenia jest kompatybilna wstecznie, chociaż praktyka pokazuje, że twórcy czasem naginają tę zasadę. Do tematu aktualizacji wersji Javy i do mechanizmów wprowadzanych w nowszych wersjach języka wrócimy w dedykowanym warsztacie.
Zaczynamy od Internationalization oraz Localization, czyli tematów rozpoczynających zagadnienia związane z regionalizacją aplikacji. Dla niektórych to co zostanie omówione w ramach tego materiału może wydawać się naturalne (i dobrze!). Zapraszam do zapoznania się z tymi zagadnieniami.
Przed tobą pierwsze podsumowanie. Bartek Kowalczyk będzie, mamy nadzieje, także Twoim głosem podczas tego warsztatu. Bardzo możliwe, że jego pytania będą bliskie również Twoim wątpliwościom na tym etapie. Przed Tobą podsumowanie materiału, po którym wszystko powinno być już jasne.
Uwaga. Materiały są przedstawiane przy wykorzystaniu Java 17. Jeżeli korzystasz z Java 19 i wyżej to pamiętaj, że w Java 19 zostały wprowadzone kosmetyczne zmiany dotyczące klasy Locale. Nie mają one jednak na Twoim poziomie nauki znaczenia i spokojnie możesz zapoznać się z tym tematem na poziomie Java 17. Wrócimy do tych zmian w warsztacie o aktualizacji wersji Java.
Warsztat koncentruje się na dwóch kluczowych aspektach tworzenia aplikacji w Javie: lokalizacji (internationalization and localization) oraz operacjach na plikach. Kurs ten ma na celu nauczenie uczestników, jak tworzyć aplikacje wspierające różne języki i formaty regionalne, a także jak efektywnie zarządzać plikami na dysku, w tym ich wczytywaniem, zapisywaniem, edycją oraz serializacją obiektów.
W ramach tego warsztatu porozmawiamy o regionalizacji aplikacji, ustawieniach regionalnych, wspieraniu kilku języków przez aplikację oraz formatach danych, które są z tym związane. Przejdziemy do operacji na plikach, czyli wczytywaniu pliku z dysku, zapisywanie plików na dysku oraz ich edycję. Porozmawiamy również o serializacji obiektów, czyli jak można utworzony w Javie obiekt zapisać do pliku. Powiemy sobie do tego, czym jest IO oraz NIO.2.
Tematyka Warsztatu:
1. Lokalizacja:
Internationalization i Localization:
Wprowadzenie do koncepcji internacjonalizacji i lokalizacji aplikacji.
Omówienie, jak aplikacje mogą wspierać różne języki i formaty regionalne.
Resource Bundle:
Jak używać pakietów zasobów do zarządzania różnymi wersjami językowymi.
Formatowanie w zależności od lokalizacji:
Formatowanie danych, takich jak daty, liczby i waluty, w zależności od ustawień regionalnych użytkownika.
2. Operacje na Plikach:
Exceptions - rozszerzamy wiedzę pod operacje na plikach:
Rozszerzenie wiedzy na temat obsługi wyjątków, ze szczególnym uwzględnieniem operacji na plikach.
Try-With-Resources:
Automatyczne zarządzanie zasobami (pliki, strumienie) w Javie.
AutoCloseable i SuppressedExceptions:
Implementacja i zarządzanie zasobami, które muszą być zamknięte po użyciu.
3. Podstawy IO i NIO.2:
IO - in/out i koncept systemu plików:
Podstawy systemu plików w Javie oraz klasyczne operacje wejścia/wyjścia.
Klasa File:
Praca z plikami i katalogami za pomocą klasy File.
Strumienie (Streams):
Teoria strumieni wejścia/wyjścia oraz ich praktyczne zastosowania.
InputStream, OutputStream:
Podstawowe strumienie bajtowe w Javie.
BufferedInputStream, BufferedOutputStream:
Buforowane strumienie, które poprawiają wydajność operacji wejścia/wyjścia.
Reader, Writer:
Strumienie znakowe do obsługi danych tekstowych.
4. Serializacja:
Serialization i Deserialization:
Zapis i odczyt obiektów Javy do/z plików.
5. Zaawansowane Operacje na Plikach:
PrintStream, PrintWriter:
Zaawansowane klasy do formatowanego zapisu danych.
Scanner:
Wczytywanie danych z różnych źródeł przy użyciu klasy Scanner.
6. NIO.2:
Interface Path:
Wprowadzenie do interfejsu Path i jego zastosowań.
Klasy Paths and Files:
Nowoczesne podejście do operacji na plikach z użyciem klas Paths i Files.
Porównanie NIO.2 vs IO:
Różnice i zalety nowego API NIO.2 w porównaniu do klasycznego IO.
8. Zadania i Projekt Końcowy:
Praktyczne zadania i projekt końcowy:
Ćwiczenia praktyczne, które pozwalają na zastosowanie zdobytej wiedzy w rzeczywistych scenariuszach programistycznych.
Korzyści z Uczestnictwa w Kursie:
Zdobycie umiejętności lokalizowania aplikacji i wspierania różnych ustawień regionalnych.
Poznanie zaawansowanych technik operacji na plikach, w tym zarządzania strumieniami i serializacją obiektów.
Praktyczne doświadczenie z nowoczesnym API NIO.2.
Zastosowanie zdobytej wiedzy w praktycznych zadaniach i projekcie końcowym, co przyczyni się do lepszego zrozumienia i utrwalenia materiału.
Uczestnicy kursu nauczą się, jak tworzyć aplikacje, które wspierają różne języki i ustawienia regionalne, a także jak efektywnie zarządzać plikami na dysku. Zdobędą umiejętności nie tylko w zakresie podstawowych operacji wejścia/wyjścia, ale także zaawansowanych technik, takich jak serializacja obiektów i wykorzystanie nowoczesnego API NIO.2. Kurs przygotowuje uczestników do tworzenia bardziej złożonych i wszechstronnych aplikacji w Javie, które są gotowe na globalny rynek.
Warsztat ten jest trzecim warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.
Ten warsztat został nagrany w Java 17. Testy w tym warsztacie również odnoszą się do Java 17. Ma to o tyle znaczenie, że jeżeli będziesz korzystać z nowszych wersji Java, to teoretycznie mogły tam nastąpić jakieś kosmetyczne zmiany. Dlatego dla spójności, zalecamy korzystanie z JDK 17, żeby Twoje przykłady zachowywały się tak jak na nagraniach, ale nie zabraniamy korzystać z nowszego JDK.
Kurs jest idealny dla programistów, którzy chcą poszerzyć swoje umiejętności w zakresie lokalizacji aplikacji oraz zaawansowanych operacji na plikach w Javie.