System.console () vs. System.out
1. Introduktion
I denne vejledning undersøger vi forskellene mellem System.console () og System.out.
2. System.console ()
Lad os først oprette et program for at hente Konsol objekt:
ugyldig printConsoleObject () {Konsolkonsol = System.konsol (); console.writer (). udskriv (console); }
At køre dette program fra en interaktiv terminal vil output noget lignende [e-mail beskyttet]
Imidlertid kører det fra andre medier NullPointerException som konsolobjekt ville være nul.
Eller hvis vi kører programmet som nedenfor:
$ java ConsoleAndOut> test.txt
så kaster programmet også en NullPointerException når vi omdirigerer strømmen. Det Konsol klasse giver også metoder til at læse adgangskoder uden at ekko tegnet. Lad os se det i aktion: Dette beder om adgangskoden, og det ekko ikke tegnene, mens vi skriver det. Lad os nu udskrive objektet af System.out: Dette vil returnere noget lignende java.io.PrintStream. Outputtet vil være det samme hvor som helst. System.out bruges til at udskrive data til outputstrømmen, og der er ingen metoder til at læse data. Outputstrømmen kan omdirigeres til enhver destination, såsom fil, og output forbliver den samme. Vi kan køre programmet som: Dette udskriver output til test.txt fil. Baseret på eksemplerne kan vi identificere nogle forskelle: Vi lærte i denne artikel om forskellene mellem System.console () og System.out. Vi forklarede det Konsol er nyttigt, når et program skal køre fra en interaktiv konsol, men det har nogle særheder, som skal bemærkes og behandles. Som altid er den komplette kode til denne artikel tilgængelig på GitHub.ugyldigt readPasswordFromConsole () {Console console = System.console (); char [] password = console.readPassword ("Indtast adgangskode:"); console.printf (String.valueOf (adgangskode)); }
3. System.out
System.out.println (System.out);
$ java ConsoleAndOut> test.txt
4. Forskelle
5. Konklusion