System.console () vs. System.out
1. Introduksjon
I denne opplæringen vil vi utforske forskjellene mellom System.console () og System.out.
2. System.console ()
La oss først lage et program for å hente Konsoll gjenstand:
ugyldig printConsoleObject () {Konsollkonsoll = System.console (); console.writer (). utskrift (console); }
Å kjøre dette programmet fra en interaktiv terminal vil sende noe sånt som [e-postbeskyttet]
Å kjøre det fra andre medier vil imidlertid kaste NullPointerException som konsollobjekt ville være null.
Eller hvis vi kjører programmet som nedenfor:
$ java ConsoleAndOut> test.txt
da vil programmet også kaste a NullPointerException mens vi omdirigerer strømmen. De Konsoll klasse gir også metoder for å lese passord uten å ekko tegnet. La oss se det i aksjon: Dette vil be om passordet, og det ekko ikke tegnene mens vi skriver det. La oss nå skrive ut objektet til System.out: Dette vil returnere noe sånt som java.io.PrintStream. Produksjonen vil være den samme hvor som helst. System.out brukes til å skrive ut data til utdatastrømmen, og det er ingen metoder for å lese data. Utgangsstrømmen kan omdirigeres til hvilken som helst destinasjon, for eksempel fil, og utdataene vil forbli den samme. Vi kan kjøre programmet som: Dette vil skrive utdataene til test.txt fil. Basert på eksemplene kan vi identifisere noen forskjeller: Vi lærte i denne artikkelen om forskjellene mellom System.console () og System.out. Vi forklarte det Konsoll er nyttig når et program skal kjøre fra en interaktiv konsoll, men det har noen særegenheter som bør noteres og tas vare på. Som alltid er den fullstendige koden for denne artikkelen tilgjengelig på GitHub.ugyldig readPasswordFromConsole () {Console console = System.console (); char [] password = console.readPassword ("Skriv inn passord:"); console.printf (String.valueOf (passord)); }
3. System.out
System.out.println (System.out);
$ java ConsoleAndOut> test.txt
4. Forskjeller
5. Konklusjon