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:
Code Block |
---|
language | java |
---|
title | Java forrás |
---|
linenumbers | true |
---|
|
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:
Code Block |
---|
language | java |
---|
title | Java forrás |
---|
linenumbers | true |
---|
|
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):
Code Block |
---|
language | java |
---|
title | Java forrás |
---|
linenumbers | true |
---|
|
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:
Code Block |
---|
language | java |
---|
title | Java forrás |
---|
linenumbers | true |
---|
|
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:
Code Block |
---|
language | java |
---|
title | Java forrás |
---|
linenumbers | true |
---|
|
Double number = 3.1415;
System.console().format("[%8.2f]", number); |
Ennek eredménye a következő lesz:
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!