Przed Tobą kolejny materiał powstały z dzielenia zagadnień na mniejsze części! Klasa "FileReader" w języku Java to droga do odczytu pliku tekstowego, a Ty teraz masz szansę dowiedzieć się więcej na jej temat ☺️!
"FILEREADER" W JĘZYKU JAVA TO TAKŻE STRUMIEŃ
Tylko tym razem wejściowy, bo teraz będziemy chcieli wydobyć informacje, a nie je utrwalić 😉. Poznaj zapis, Czytelniku 😀:
FileReader fileReader = new FileReader("test.txt");
Tylko uwaga - blok "try-catch"! Strumień wejściowy próbuje podpiąć się pod plik wskazany w parametrze typu "String" - to może się nie powieść!
try {
FileReader fileReader = new FileReader("test.txt");
fileReader.close();
} catch (Exception exception) {
exception.printStackTrace();
}
I kończymy metodą "close" - tego chyba nie muszę tłumaczyć 😊. Tak jak wtedy, możemy też dać obiekt typu "File" (który także ląduje do środka bloku "try"):
try {
File file = new File("test.txt");
FileReader fileReader = new FileReader(file);
fileReader.close();
} catch (Exception exception) {
exception.printStackTrace();
}
Do tego eksperymentu potrzebujemy następujących pakietów:
import java. io.File;
import java. io.FileReader;
PODSTAWOWE METODY KLASY "FILEREADER"
Od razu piszę, że "FileReader" w języku Java nie jest najwygodniejszym sposobem na odczytywanie informacji z pliku. Z tej klasy wolno tylko pobierać znak po znaku i w dodatku, trzeba wykonywać rzutowanie z liczby całkowitej. Stąd jest to..."surowe" podejście i dlatego lepiej korzystać z klasy "BufferedReader", tak jak to było przy zapisie danych do pliku. Ale zostawmy to - pokażę Ci podstawowe metody.
CLOSE
Dla porządku powtórzę to, co zostało napisane w artykule o "FileWriter" - skończyłeś(-aś) operować na pliku? To zamykaj strumień! Do tego służy metoda "close":
fileReader.close();
do zamykania strumieni, aby potem system operacyjny nie wrzeszczał na Ciebie, że musisz "zamknąć wszystkie programy", aby dany plik usunąć, przenieść czy zmienić mu nazwę 😜.
READ
To jest metoda pobierająca jeden znak z zawartości pliku i przechodząca do następnego:
int character = fileReader.read();
Dobrze widzisz - "int". Jeżeli strumień nie "doszedł" do końca, to zwraca wartość różną od -1. To się przydaje do zaprogramowania aplikacji, która odczyta plik tekstowy znak po znaku. Możesz to zrobić używając pętli "while" (bo liczba znaków per plik może być nieregularna):
int character;
while ((character = fileReader.read()) != -1) {
System.out.print\(character);
}
Zapis "wszczepiający" przypisanie do zmiennej wewnątrz warunku pętli może wydawać się przerażający, jednak taki nie jest. Jest to uproszczona wersja poniższego zapisu:
int character = fileReader.read();
while (character != -1) {
System.out.print\(character);
character = fileReader.read();
}
Ponieważ to są liczby całkowite, Twoim oczom ujrzą się liczby oznaczające znak odpowiadający tabelce kodów ASCII. Żeby ujrzeć "prawdziwe" znaki, musisz wykonać rzutowanie na typ "char":
int character;
while ((character = fileReader.read()) != -1) {
System.out.print\((char)character);
}
Warto nadmienić, że nie wszystkie języki wysokiego poziomu mogą wspierać taki zapis. Java jednak należy do tych szczęściarzy ⭐.
"FileReader" w języku Java potrafi odczytywać zawartość z pliku tekstowego, natomiast tylko w ograniczonym zakresie - pojedynczy znak i wymaga rzutowania na typ "char".
Wszystko co istotne, zostało przedstawione.