Zadanie 1.
Po zapoznaniu się z klasami do obsługi strumieni wejścia i wyjścia (w szczególności FileReader) utwórz program który zliczy liczbę wierszy w pliku którego nazwa została przekazana w linii poleceń.
Nazwa Klasy: LineCounter
Uwaga:
Proszę wprowadzić jawną obsługę błędów (łapanie wyjątków).
Tekst powinien wyglądać tak jak poniżej dla wywołania: java LineCounter
Brak argumentów programu.
Zaś inaczej w tym przypadku: java LineCounter abc.txt
Liczba wierszy w pliku abc.txt wynosi: 127
Zadanie 2.
Proszę w oparciu o poprzedni program napisać nowy, który tym razem odbierze informację o nazwie pliku korzystając z klasy: JOptionPane.
Nazwa Klasy: LineCounterPane
Uwaga:
Link do tutoriala z zastosowaniem JOptionPane w Sekcji Dodatki.
Zadanie 3.
Utwórz program który będzie kopiował dany plik. W przypadku braku parametrów lub błędnych nazw plików wyświetli stosowny komunikat.
Nazwa Klasy: FileCopy
Uwaga:
Proszę wprowadzić jawną obsługę błędów (łapanie wyjątków).
Tekst powinien wyglądać tak jak poniżej dla wywołania: java FileCopy
Brak argumentów programu.
Użycie: java FileCopy source_file target
Zaś inaczej w tym przypadku: java FileCopy abc.txt cde.txt
Jeśli kopiowanie powiodło się, to nie pojawia się żaden tekst na konsoli.
Jeśli miejscem docelowym jest katalog to w nim utworzymy kopię naszego pliku.
Kopiowany plik niekoniecznie jest tekstowy.
Inne możliwe komunikaty:
Plik abc.txt nie istnieje.
abc.txt jest katalogiem.
Brak dostępu do pliku abc.txt
Nie można nadpisać pliku cde.txt
Brak wymaganych uprawnień do zapisu pliku cde.txt
Brak wymaganych uprawnień do katalogu cde.txt
Inne przykłady wywołonia:
java FileCopy abc.html cde.html
java FileCopy abc.txt ../cde.txt
java FileCopy abc.txt ./cde.txt
java FileCopy abc.txt ..
Zadanie 4.
Proszę rozwinąć zadanie 1 o dodanie opcji.
W zależności od opcji program będzie zliczał nie tylko wiersze ale i słowa oraz znaki.
Nazwa Klasy: WordCounter
Uwaga:
Proszę wprowadzić jawną obsługę błędów (łapanie wyjątków).
Tekst powinien wyglądać tak jak poniżej dla wywołania: java WordCounter
Brak argumentów programu.
W przypadku: java WordCounter abc.txt
wierszy: 127
znaków: 23452
słów: 567
W przypadku: java WordCounter -lc abc.txt
wierszy: 127
znaków: 23452
W przypadku: java WordCounter -l -c abc.txt
wierszy: 127
znaków: 23452
W przypadku: java WordCounter -lcw abc.txt
wierszy: 127
znaków: 23452
słów: 567
W przypadku: java WordCounter -cl -w abc.txt
wierszy: 127
znaków: 23452
słów: 567
W przypadku: java WordCounter abc.txt -l -w -c
wierszy: 127
znaków: 23452
słów: 567
W przypadku: java WordCounter abc.txt -w -c
znaków: 23452
słów: 567
W przypadku: java WordCounter abc.txt -wc
znaków: 23452
słów: 567
W przypadku: java WordCounter abc.txt -cw
znaków: 23452
słów: 567
Zadanie 5.
Proszę rozwinąć zadanie 3 o dodanie możliwości kopiowania danego URL.
Nazwa Klasy: FileAndURLCopy
Uwaga:
Proszę wprowadzić jawną obsługę błędów (łapanie wyjątków).
Wspieramy wszystkie poprzednie komunikaty przy czym dodajemy możliwość wywołania:
java FileCopy http://www.agh.edu.pl/index.html
java FileCopy https://www.agh.edu.pl
W powyższych przypadkach zapisujemy plik pod odpwiednią nazwą w obecnym katalogu.
Pozostałe możliwości też wchodzą w grę:
java FileCopy https://www.agh.edu.pl agh.html
java FileCopy http://www.agh.edu.pl ..
Rozszerzamy komunikaty o:
Podany adres: 'http://www.agh.edu.pl' jest nieprawidłowy.
Brak dostępu do 'http://www.agh.edu.pl'.
Brak połączenia sieciowego.
Można dodać własne komunikaty (timeout).