Typické programy pracujú s údajmi, ktoré musí používateľ zadať a zobraziť. V tomto tutoriále skúmame, ako môžeš v Java spracovať vstupy od používateľa a efektívne konať výstupy. Existuje niekoľko spôsobov, ako zhromažďovať alebo poskytovať informácie. Pri tom zohráva rozlíšenie medzi výstupmi na konzolu a chybovými výstupmi dôležitú úlohu. Taktiež sa naučíš, ako efektívne načítať údaje, či už cez konzolu alebo grafické používateľské rozhrania.
Najdôležitejšie zistenia
- Java ponúka niekoľko spôsobov na manipuláciu s vstupe a výstupmi údajov.
- Je dôležité oddeliť výstupy a chyby od seba navzájom.
- Scanner je užitočný nástroj na načítanie vstupov od používateľa.
Základná výstup s System.out
Prvý krok pri práci s výstupmi v Java je zaobchádzanie so System.out, čo predstavuje štandardný výstup. S triedou PrintStream, ktorá reprezentuje System.out, môžeš posielať výstupy na konzolu.
Aby si vygeneroval textový výstup, môžeš jednoducho použiť System.out.print alebo System.out.println. println ukončí riadok po výstupe, zatiaľ čo print to nerobí. Ak teda chceš, aby sa ďalší výstup uskutočnil v tom istom riadku, použiješ print.

Program môžeš vykonať nasledovne:
Tento výstup sa zobrazí na konzole a môžeš prispôsobiť program na zobrazenie ďalších informácií.
Chybové výstupy s System.err
Pre chybové výstupy je dobré použiť System.err. To poskytuje výhodu, že chyby a bežné výstupy sú jasne oddelené. Chyby môžu byť vizuálne zvýraznené, napríklad použitím inej farby na konzole (často červenej).
Keď nastane chyba, môžeš s System.err.print alebo System.err.println zobraziť konkrétnu chybu:

Tu je príklad chybového hlásenia:
Oddelením bežných výstupov a chybových hlásení môžeš zvýšiť čitateľnosť a porozumiteľnosť výstupov vo svojom programe.
Vstupy s System.in a Scannerom
Aby si získal vstupy od používateľa, využijeme System.in. Odporúča sa použiť triedu Scanner z balíka java.util. Scanner zjednodušuje čítanie údajov, pretože automaticky rozpoznáva rôzne dátové typy a vracia vstup ako reťazec.
Najprv musíš importovať Scanner:

Potom môžeš vytvoriť inštanciu Scanner a odovzdať System.in:
Teraz máš možnosť čítať vstupy vo svojom programe.
Zachytávanie vstupov od používateľa
Aby si získal údaje od používateľa, môžeš použiť nextLine(). Toto umožňuje zachytiť celý riadok ako reťazec. Typický príklad by bol vstup veku používateľa.
Tu je príklad vstupu od používateľa:

V tomto príklade je používateľ vyzvaný, aby zadal svoj vek, a program následne vracia zadanú informáciu.
Interakcie používateľa s grafickými dialógmi
Ak chceš použiť grafické používateľské rozhranie (GUI), môžeš využiť triedu JOptionPane z balíka javax.swing. To ti umožní zachytiť vstupy v štandardnom dialógovom okne, čo môže byť o niečo priateľskejšie pre používateľov.

To zobrazuje grafický dialóg, v ktorom môže používateľ zadať svoj vek.
Validácia vstupov od používateľa
Je dôležité validovať vstupy prichádzajúce od používateľa. Mal by si zabezpečiť, aby vek bol skutočne v akceptovateľnom formáte, napríklad ako celé číslo. K tomu môžeš vyskúšať previesť reťazec na číslo a pracovať s výnimkami.

Implementáciou týchto validácií chrániš svoj program pred neočakávanými vstupmi.
Zhrnutie – optimalizácia vstupu a výstupu v Java
Nyní si sa naučil základné koncepcie pre vstup a výstup v Java. Rozlišovanie medzi štandardnými výstupmi a chybovými hláseniami je kľúčové pre vytvorenie jasnosti v programovej komunikácii. Okrem toho ponúka použitie Scanneru a možnosť implementácie grafických dialógov flexibilné riešenia pre zadávanie údajov.
Často kladené otázky
Akú triedu používam pre štandardný výstup?Používaš System.out na zobrazenie výstupov v okne konzoly.
Ako môžem zobraziť chybové hlásenia?Použi System.err na zobrazenie chybových hlásení, aby si ich oddelil od bežných výstupov.
Ako zachytím vstupy používateľa v konzole?Scanner z java.util je ideálny na zachytenie vstupov od používateľov z System.in.
Môžem použiť grafické dialógy na zadávanie?Áno, pomocou JOptionPane z javax.swing môžeš používať grafické dialógy na zadávanie.
Mám validovať vstupy používateľa?Áno, validácia vstupov je dôležitá na vyhýbanie sa chybám a neočakávaným vstupom.