Odczyt "tokenów" z pliku - klasa StreamTokenizer
Klasa StreamTokenizer pozwala na podział strumienia (np. plikowego) na tzw. "tokeny", czyli ciągi znaków oddzielone spacjami. W przypadku czystego tekstu tokeny są równoważne z wyrazami, ale jeśli tekst zawiera liczby, klasa StreamTokenizer pozwala je odróżnić od reszty tekstu.
Do podziału tekstu na tokeny można wykorzystać podobną klasę StringTokenizer.
Przykład odczytu "tokenów" z pliku: Pliki_odczyt3.java (zakłada się, że plik plik.txt istnieje i oprócz tekstu zawiera jakieś liczby)
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.StreamTokenizer;
public class Pliki_odczyt3 {
public static void main(String[] args) {
int wartosc = 0; FileReader fr= null;
//OTWIERANIE PLIKU: try { fr = new FileReader("plik.txt"); } catch (FileNotFoundException e) { System.out.println("BŁĄD PRZY OTWIERANIU PLIKU!"); System.exit(1); }
StreamTokenizer st = new StreamTokenizer(fr); //ODCZYT KOLEJNYCH "TOKENÓW" Z PLIKU: try { while( (wartosc = st.nextToken()) != StreamTokenizer.TT_EOF ){ if(wartosc == StreamTokenizer.TT_WORD) System.out.println("Wczytano słowo: "+ st.sval); else if(wartosc == StreamTokenizer.TT_NUMBER) System.out.println("Wczytano liczbę: "+ st.nval); } } catch (IOException e) { System.out.println("BŁĄD ODCZYTU Z PLIKU!"); System.exit(2); }
//ZAMYKANIE PLIKU: try { fr.close(); } catch (IOException e) { System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!"); System.exit(3); } } }
|