Programowanie obiektowe - JAVA
Informacje ogólne > Laboratorium 4 > Odczyt "tokenów" z pliku - klasa StreamTokenizer

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);
      }
   }
}