Typické programy pracují s daty, která musí být zadána a vytištěna uživateli. V tomto tutoriálu prozkoumáme, jak můžeš v Java zpracovávat vstupy od uživatelů a efektivně vytvářet výstupy. Existují různé způsoby, jak shromáždit nebo poskytnout informace. Při tom hraje rozlišování mezi výstupy na konzoli a chybovými výstupy důležitou roli. Také se naučíš, jak efektivně číst data, ať už prostřednictvím konzole nebo grafických uživatelských rozhraní.
Nejdůležitější poznatky
- Java nabízí několik způsobů pro zpracování vstupů a výstupů dat.
- Je důležité oddělit výstupy a chyby od sebe navzájem.
- Scanner je užitečný nástroj pro čtení uživatelských vstupů.
Základní výstup s System.out
Prvním krokem při práci s výstupy v Java je používání System.out, který představuje standardní výstup. Pomocí třídy PrintStream, která reprezentuje System.out, můžeš posílat výstupy na konzoli.
Aby ses dostal ke textovému výstupu, můžeš jednoduše použít System.out.print nebo System.out.println. println ukončuje řádek po výstupu, zatímco print to nedělá. Pokud tedy chceš, aby se následující výstup objevil ve stejném řádku, použiješ print.

Můžeš program spustit následujícím způsobem:
Tento výstup se zobrazí na konzoli a můžeš program upravit, abys poskytl další informace.
Chybové výstupy s System.err
Pro chybové výstupy je doporučeno použít System.err. To má tu výhodu, že chyby a běžné výstupy jsou jasně odděleny. Chyby mohou být vizuálně zvýrazněny, například použitím jiné barvy v konzoli (často červenou).
Pokud dojde k chybě, můžeš pomocí System.err.print nebo System.err.println vypsat konkrétní chybu:

Zde je příklad chybové zprávy:
Oddělením běžných výstupů a chybových zpráv můžeš zvýšit čitelnost a přehlednost výstupů ve svém programu.
Vstupy s System.in a Scannerem
Abychom získali vstupy od uživatele, používáme System.in. Je doporučeno využít třídu Scanner z balíčku java.util. Scanner zjednodušuje čtení dat, protože automaticky rozpoznává různé datové typy a vrací vstup jako String.
Nejprve musíš importovat Scanner:

Následně můžeš vytvořit instanci Scanneru a předat jí System.in:
Teď máš možnost číst vstupy ve svém programu.
Sběr uživatelských vstupů
Abychom získali data od uživatele, můžeš použít nextLine(). To umožňuje zachytit celou linku jako String. Typickým příkladem by bylo zadání věku uživatele.
Zde je příklad pro uživatelský vstup:

V tomto příkladu je uživatel požádán, aby zadal svůj věk, a program následně vrátí zadanou informaci.
Interakce s uživateli pomocí grafických dialogů
Pokud chceš používat grafické uživatelské rozhraní (GUI), můžeš využít třídu JOptionPane z balíčku javax.swing. To ti umožní zachytit vstupy v standardním dialogovém okně, což může být o něco uživatelsky přívětivější.

Toto zobrazí grafický dialog, ve kterém může uživatel zadat svůj věk.
Validace uživatelských vstupů
Je důležité validovat vstupy pocházející od uživatelů. Měl bys zajistit, že věk je skutečně v akceptovatelném formátu, například jako celé číslo. K tomu můžeš zkusit převést String na číslo a pracovat s výjimkami.

Implementací těchto validací chráníš svůj program před neočekávanými vstupy.
Souhrn – Optimalizace vstupu a výstupu v Java
Nyní jsi se naučil základní koncepty vstupu a výstupu v Java. Rozlišování mezi standardními výstupy a chybovými zprávami je zásadní pro jasnost v komunikaci programu. Kromě toho nabízí použití Scanneru a možnost implementace grafických dialogů flexibilní řešení pro vstupy dat.
Často kladené otázky
Jakou třídu používám pro standardní výstup?Používáš System.out, abys zobrazil výstupy v konzolovém okně.
Jak mohu vypsat chybové zprávy?Použij System.err pro výpis chybových zpráv, abys je oddělil od běžných výstupů.
Jak zachytím uživatelské vstupy v konzole?Scanner z java.util je ideální pro shromažďování uživatelských vstupů z System.in.
Možu použít grafické dialogy pro vstupy?Ano, pomocí JOptionPane z javax.swing můžeš používat grafické dialogy pro vstup.
Mám validovat uživatelské vstupy?Ano, validace vstupů je důležitá, aby se předešlo chybám a neočekávaným vstupům.