System.console () u odnosu na System.out
1. Uvod
U ovom uputstvu istražit ćemo razlike između System.console () i System.out.
2. System.console ()
Napravimo najprije program za preuzimanje Konzola objekt:
void printConsoleObject () {Konzola konzole = System.console (); console.writer (). print (console); }
Pokretanje ovog programa s interaktivnog terminala rezultirat će nečim sličnim [e-pošta zaštićena]
Međutim, trčanje iz drugih medija bacit će NullPointerException kao što bi bio objekt konzole null.
Ili ako pokrenemo program kao u nastavku:
$ java ConsoleAndOut> test.txt
tada će program također baciti a NullPointerException dok preusmjeravamo tok. The Konzola class također nudi metode za čitanje lozinki bez ponavljanja znaka. Da vidimo to na djelu: Ovo će zatražiti lozinku i neće odjeknuti znakovi dok je tipkamo. Otisnimo sada objekt od System.out: Ovo će vratiti nešto poput java.io.PrintStream. Izlaz će biti isti s bilo kojeg mjesta. System.out koristi se za ispis podataka u izlazni tok i ne postoje metode za čitanje podataka. Izlazni tok može se preusmjeriti na bilo koje odredište poput datoteke, a izlaz će ostati isti. Program možemo pokrenuti kao: Ovo će ispisati izlaz na test.txt datoteka. Na temelju primjera možemo prepoznati neke razlike: U ovom smo članku saznali o razlikama između System.console () i System.out. Objasnili smo to Konzola je korisno kada bi se aplikacija trebala izvoditi s interaktivne konzole, ali ima nekih hirovitosti koje treba primijetiti i paziti na njih. Kao i uvijek, cjeloviti kôd za ovaj članak dostupan je na GitHubu.void readPasswordFromConsole () {Konzola konzole = System.console (); char [] lozinka = console.readPassword ("Unesite lozinku:"); console.printf (String.valueOf (lozinka)); }
3. System.out
System.out.println (System.out);
$ java ConsoleAndOut> test.txt
4. Razlike
5. Zaključak