Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
languagejava
titleJava forrás
linenumberstrue
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
languagejava
titleJava forrás
linenumberstrue
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
languagejava
titleJava forrás
linenumberstrue
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
languagejava
titleJava forrás
linenumberstrue
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
languagejava
titleJava forrás
linenumberstrue
Double number = 3.1415;
System.console().format("[%8.2f]", number);

Ennek eredménye a következő lesz:

Code Block
[    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!