System.console () vs. System.out
1. Bemutatkozás
Ebben az oktatóanyagban megvizsgáljuk a különbségeket System.console () és System.out.
2. System.console ()
Először hozzunk létre egy programot a Konzol tárgy:
void printConsoleObject () {Console console = System.console (); konzol.író (). nyomtatás (konzol); }
Ha ezt a programot interaktív terminálról futtatja, akkor valami hasonló lesz [e-mail védett]
Más médiumokból történő futtatása azonban dobni fog NullPointerException amilyen a konzol lenne nulla.
Vagy ha az alábbiak szerint futtatjuk a programot:
$ java ConsoleAndOut> test.txt
akkor a program is dob egy NullPointerException miközben átirányítjuk a patakot. A Konzol osztály a jelszavak elolvasására szolgáló módszereket is kínál a karakter visszhangja nélkül. Lássuk ezt működés közben: Ez megkéri a jelszót, és nem fogja visszhangozni a karaktereket, amíg beírjuk. Most nyomtassuk ki az objektumot System.out: Ez valami ilyesmit ad vissza java.io.PrintStream. A kimenet bárhonnan azonos lesz. System.out adatok nyomtatására szolgál a kimeneti adatfolyamba, és nincsenek módszerek az adatok olvasására. A kimeneti adatfolyam átirányítható bármilyen rendeltetési helyre, például fájlba, és a kimenet ugyanaz marad. A programot a következő módon futtathatjuk: Ez kinyomtatja a kimenetet a test.txt fájl. A példák alapján néhány különbséget tudunk azonosítani: Ebben a cikkben megtudtuk a különbségeket System.console () és System.out. Ezt elmagyaráztuk Konzol akkor hasznos, ha egy alkalmazásnak interaktív konzolról kell futtatnia, de van benne néhány furcsasága, amelyeket figyelembe kell venni és gondozni kell. Mint mindig, a cikk teljes kódja elérhető a GitHubon.void readPasswordFromConsole () {Konzol konzol = System.console (); char [] password = console.readPassword ("Írja be a jelszót:"); console.printf (String.valueOf (jelszó)); }
3. System.out
System.out.println (System.out);
$ java ConsoleAndOut> test.txt
4. Különbségek
5. Következtetés