System.console () versus System.out
1. Inleiding
In deze tutorial onderzoeken we de verschillen tussen System.console () en System.out.
2. System.console ()
Laten we eerst een programma maken om het Troosten voorwerp:
void printConsoleObject () {Console console = System.console (); console.writer (). print (console); }
Als u dit programma vanaf een interactieve terminal uitvoert, krijgt u zoiets als [e-mail beveiligd]
Het uitvoeren van het vanaf andere media zal echter gooien NullPointerException zoals console-object zou zijn nul.
Of, als we het programma uitvoeren zoals hieronder:
$ java ConsoleAndOut> test.txt
dan zal het programma ook een NullPointerException terwijl we de stream omleiden. De Troosten class biedt ook methoden om wachtwoorden te lezen zonder het karakter te herhalen. Laten we dat in actie zien: Dit zal om het wachtwoord vragen, en het zal de tekens niet weergeven terwijl we het typen. Laten we nu het object van afdrukken System.out: Dit levert zoiets op als java.io.PrintStream. De uitvoer is overal hetzelfde. System.out wordt gebruikt om gegevens af te drukken naar de uitvoerstroom en er zijn geen methoden om gegevens te lezen. De uitvoerstroom kan worden omgeleid naar elke bestemming, zoals een bestand, en de uitvoer blijft hetzelfde. We kunnen het programma uitvoeren als: Hierdoor wordt de uitvoer naar het test.txt het dossier. Op basis van de voorbeelden kunnen we enkele verschillen identificeren: We leerden in dit artikel over de verschillen tussen System.console () en System.out. Dat hebben we uitgelegd Troosten is handig als een applicatie verondersteld wordt te draaien vanaf een interactieve console, maar het heeft een aantal eigenaardigheden die opgemerkt en aangepakt moeten worden. Zoals altijd is de volledige code voor dit artikel beschikbaar op GitHub.void readPasswordFromConsole () {Console console = System.console (); char [] wachtwoord = console.readPassword ("Voer wachtwoord in:"); console.printf (String.valueOf (wachtwoord)); }
3. System.out
System.out.println (System.out);
$ java ConsoleAndOut> test.txt
4. Verschillen
5. Conclusie