Javassa tietojen kysyminen käyttäjältä ohjelman suorituksen aikana ei ole kaikista helpoiten tehty. Alla olevaan ohjelmaan on lihavoitu perusohjelmaan lisättävät komennot.
import java.io.*; //Lukee käyttäjän antaman merkkijonon ja tulostaa sen class Kaiku { public static void main(String[] args) throws IOException { BufferedReader lukija = new BufferedReader(new InputStreamReader(System.in)); String syote; System.out.println("Anna teksti:"); syote = lukija.readLine(); System.out.println("Kirjoitit:\" " + syote + "\" "); } }
Ohjelma lukee siis käyttäjän kirjoittaman merkkijonon muuttujaan syote. Syötteen voi muuttaa edellä kuvatulla tavalla joko kokonaisluvuksi tai desimaaliluvuksi.
Alla oleva ohjelma kysyy käyttäjältä lukuja.
import java.io.*; class Lukuja { public static void main(String args[]) throws IOException { BufferedReader lukija = new BufferedReader(new InputStreamReader(System.in)); String syote; int kokonaisluku; double desimaaliluku; System.out.print("Anna kokonaisluku:"); syote = lukija.readLine(); kokonaisluku = Integer.parseInt(syote); System.out.println("Annoit kokonailuvun "+kokonaisluku); System.out.print("Anna desimaaliluku:"); syote = lukija.readLine(); desimaaliluku = Double.parseDouble(syote); System.out.println("Annoit desimaaliluvun "+desimaaliluku); } }
Java 1.5:n mukana tuli luokka Scanner, joka hoitaa näppäimistöltä lukemisen hieman yksinkertaisemmin.
import java.util.Scanner; class Kysely { public static void main(String[] args) { Scanner lukija = new Scanner(System.in); int kokluku; double desimluku; String merkkijono; System.out.print("Anna kokonaisluku:"); kokluku = lukija.nextInt(); System.out.print("Anna desimaaliluku:"); desimluku = lukija.nextDouble(); System.out.print("Anna merkkijono:"); merkkijono = lukija.nextLine(); } }
Scanner-luokassa on kuitenkin joitain kiusallisia ominaisuuksia, jolloin pitää käyttää vanhaa tapaa syötteen lukemiseen.
Eli mikäli Scanner-oliolla et saa syötettä luettua, niin käytä vanhaa tapaa.