A Java SE 6 tartalmaz egy újdonságot, amely megkönnyítheti azon pokol tüzében szenvedő lelkek életét, akik valaha megpróbálták a Java nyelvet arra használni, amire igazából alkalmatlan: konzolról beolvasni különféle dolgokat és oda formázva kiírni az eredményt (gyakori iskolai feladat C/C++, neadjisten Pascal berögződés alapján). A java.io.Console osztály több olyan metódust ad nekünk, amely igen hasznos a fenti esetben, azonban az osztály önmagában nem használható, működéséhez el kell kérnünk egy létező példányt a System.console() metódus meghívásával:
java.io.Console console = System.console();
Ezek után szabad a pálya, a JVM által használt rendszerkonzolon tudunk garázdálkodni, például egyszerűen beolvasni:
String line = console.readLine();
Tudunk prompt után beolvasni, és itt a prompt lehet formázott és paraméterezett (például ciklusváltozó adta érték):
line[count] = console.readLine("Enter %d. value:", count);
Hasonló a helyzet jelszó beolvasásánál, ott nem kerülnek visszhangozásra a beírt karakterek:
String password = console.readPassword("Enter your password:");
Végül C stílusban formázott kimenetet is kaphatunk, ha az alábbi példát követjük:
Double number = 3.1415; System.console().format("[%8.2f]", number);
Ennek eredménye a következő lesz:
[ 3,14]
Vagyis négy szóköz után két tizedesjegyre kerekítve a PI értéke. A %8.2f jelentése azonos a C alatti jelentésével: "igazítsd jobbra 8 karakternyit és kettő tizedesjegyre kerekítsd a számot". Használjuk egészséggel!
4 Comments
Auth Gábor AUTHOR
Mennyi szenvedés, mennyi felesleges kín, mennyi tanuló, kik megutálták a Java nyelvet. Miért csak most? Miért most, amikor mindenki megszokta, hogy nincs normális konzol kezelés?! :)
Czimmermann Gábor
Karnok Dávid
Auth Gábor AUTHOR