2010-07-23 14 views
5

Przez jakiś czas programowałem w Javie, ale wciąż mam kilka palących pytań na temat podstaw. Słyszałem, że powinienem używać System.out.println() do wyświetlania danych od niektórych osób, a inni dali mi różne pomysły (takie jak PrintStream lub coś innego). Jaki jest najlepszy sposób drukowania na konsoli w Javie?Czy powinienem używać System.out.println() lub czegoś innego?

Odpowiedz

14

System.outjest a PrintStream.

Jeśli Twoim głównym celem jest interakcja z konsolą, spójrz na java.io.Console. Jeśli Twoim głównym celem jest posiadanie pewnego rodzaju rejestrowania, użyj struktury rejestrowania, takiej jak Java Logging API lub log4j.

15

Jeśli dopiero zaczynasz i chcesz wydrukować niektóre ciągi na konsolę, system.out.println() będzie w porządku. Pozbądź się podstaw, a następnie zanurkuj w najlepsze punkty Java I/O.

+0

Może napisali biblioteki Java I/O: P – wshato

1

Rodzaj zależy od tego, co robisz. Niemal zawsze sugerowałbym używanie interfejsu API do rejestrowania Java (java.util.logging). System.out.println jest bardziej "narzędziem do debugowania", ale nawet wtedy masz znacznie większą kontrolę nad danymi wyjściowymi za pomocą interfejsu API rejestrowania JDK ...

0

Użyj log4j i bezpośredniego wyjścia na standardowe wyjście. Łatwo jest wtedy przełączyć się na logi według potrzeb.

0

Korzystanie z bezpośrednio jest najprostszym i zwykle najskuteczniejszym sposobem. Jeśli masz dużo do wydrukowania, możesz zbadać, używając BufferedOutputStream.

Istnieje kilka korzyści, które można uzyskać, tworząc łańcuchy, które będą drukowane bardziej efektywnie. Jeśli jest dużo łączenia, zajrzyj do StringBuilder.

2

System.out nadaje się do drukowania na konsoli. Jednak okazało się, że podejmowanie wysiłku, aby użyć java.util.logging zamiast tego był lepszym wyborem dla mnie. (Albo jakiś system rejestrowania.)

To zależy od informacji, które próbujesz wyświetlić. Jeśli chodzi o interakcję z konsolą, System.out jest doskonały. Jeśli ma wyświetlać informacje z debugowania, logowanie jest prawdopodobnie drogą do wykonania, ponieważ pozwala mieć znacznie większą kontrolę nad rzeczami, jeśli tego pragniesz.

(Po wstępnej konfiguracji, programy narzędziowe rejestrowania są prawie tak przejrzysty jak przy użyciu System.out.)

0

yu można ustawić

System.setOut (nowy PrintStream („all-my-sysouts -go-w-tym-plik.txt”);

a następnie zrobić sysoyts ...

yu mogą śledzić je za pomocą baretail ...

nadziei to pomaga ..

raj.

0

będę sugerować użycie Java API rejestrowania

0

Tak, to najprostszy i skuteczny sposób, aby drukować na konsoli jest zwykle System.out.print() i System.out.println(), ale jeśli masz duża ilość danych wyjściowych do wysłania, System.out.println() może być nieefektywna, ponieważ jest buforowana liniowo i wykonuje wiele pracy związanych z obsługą Unicode. Ze względu na mały rozmiar bufora, System.out.println() nie jest dobrze przystosowany do obsługi wielu powtarzalnych wyjść w trybie wsadowym. Każda linia jest przepłukiwana od razu. W takim przypadku możesz użyć BufferedOutputStream lub BufferedWriter.

Należy pamiętać, że System.out nie zawsze przechodzi do konsoli aplikacji lub terminala. System.out wskazuje na standardowy kanał wyjściowy aplikacji; w C/C++ nazywa się stdout. To może przejść do konsoli, ale może również nastąpić w dowolnym miejscu, w którym użytkownik zdecyduje się go wysłać. Na przykład plik to wszystko wydrukowane na System.out trafi do pliku my-app-output.txt.

Tak więc, jeśli chcesz wysłać normalne wyniki, użyj System.out. Jeśli chcesz wysłać komunikat o błędzie lub powiadomienie użytkownika, z wielką szansą wejścia na konsolę, użyj System.err.print() i System.err.println().

Nie ma przenośnego sposobu na uzyskanie kanału "prawdziwej" konsoli w wersjach Java przed 1.6. W wersji 1.6 istnieje klasa obiektu specjalnie dla reprezentowania konsoli: java.io.Console. Numer referencyjny dla tego unikalnego obiektu można uzyskać z klasy System za pomocą konsoli metody statycznej().

Ale jeśli Twoim wymaganiem jest debugowanie całej aplikacji, to najlepszym rozwiązaniem jest to, co wszyscy mówili przy użyciu rejestratorów.

Powiązane problemy