Site icon Java blog

Java #10: Strumienie systemowe

java input output streams

We wcześniejszych lekcjach często używałem tajemniczej komendy System.out.println() aby wyświetlić (sprawdzić) wartości jakie zostały policzone w programie. Jest to częsty sposób (niejedyny), aby sprawdzić czy program działa poprawnie. Teraz postaram się wyjaśnić, czym są strumienie systemowe wejścia i wyjścia.

Strumienie systemowe

Klasa System jest jedną z pierwszych napisanych w Javie i posiada trzy ciekawe metody, na których się teraz skupię. Są nimi strumienie systemowe:

Wszystkie powyższe implementacje odpowiadają za reprezentację standardowych strumieni danych w systemie operacyjnymi. Mówiąc standardową mam na myśli: strumień wejścia (in) , strumień wyjścia (out) i strumień błędów. Oto przykładowe użycie każdego z nich:

public void seeSystemOut(String text) {
  System.out.println("My text is " + text);
}
  
public void seeSystemError() {
  System.err.println("Nastapił błąd w trakcie działania");
}

Klasa Scanner 

Zauważ, że komunikat o błędzie w Eclipsie* jest zaznaczony na żółto. Strumień wejścia System.in raczej nie będziesz używać bezpośrednio, dlatego, że jest to przestarzała metoda czytająca strumienie bajtów (mało przydatna funkcja w dzisiejszych czasach). Twórcy Javy udostępnili łatwiejszą w użyciu klasę Scanner, która opakowuje strumień wejścia i udostępnia łatwiejsze metody do pracy z nim. Jej działanie opiszę w lekcji, w której będę omawiał podstawowe użycie pętli while.

Dodatkowo klasa system posiada jeszcze dwie metody, które czasem możesz chcieć użyć:

public void seeCurrentTime() {
  long startTime = System.currentTimeMillis();

  int sum = 0;
  for (int i = 0; i < 100000000; i++) {
    sum = sum + i;
    // pętla utworzona po to, aby policzyć długość wykonywania się kodu
  }
  long endTime = System.currentTimeMillis();
  System.out.println("Metoda działa " + (endTime - startTime) + " milisekundy.");
}
public void exitProgram() {
  long startTime = System.currentTimeMillis();

  for (int i = 0; i < 10; i++) {
    System.out.println("Interacja nr " + i);
    if (i == 2) {
      System.out.println("Koniec programu.");
      System.exit(0);
    }
  }
  long endTime = System.currentTimeMillis();
  System.out.println("Metoda działa " + (endTime - startTime) + " milisekundy.");
}

 

*Jedno z najpopularniejszych środowisk programistycznych

Link do lekcji: https://github.com/developeronthego/java-basics/tree/main/src/main/java/basics/lesson10

Strumienie systemowe to nie jedyne strumienie w Javie. Zobacz moją lekcję o strumieniach danych: Java średnio zaawansowane #23: strumienie wejścia/wyjścia

Exit mobile version