TheDeveloperBlog.com


Java

Java Console Examples: System.out and System.in

Console. Programs sometimes have detailed user interfaces. But often a console or terminal output is sufficient. In Java the System.out stream is used.


Input and output. We read input, and write output, with this stream. And this fills many program requirements. We use println, print and other methods.


Println. This example uses the println and print methods. The println method adds a newline to the end of any output. It can even be used with no argument—this outputs only a newline.

Here: The first line is printed. The characters "A" and "B" are printed on the same line. And on the final line "C" is printed.

Based on:

Java 7

Java program that uses println, print

public class Program {
    public static void main(String[] args) {
	System.out.println("Print line");
	System.out.print("A");
	System.out.print("B");
	System.out.println();
	System.out.println("C");
    }
}

Output

Print line
AB
C

Append. System.out references a PrintStream. With this stream, we can append data. A CharSequence is accepted by the append method, so we can pass a string.

Subsequence: We can append a range (subsequence) with the append method. We pass the first and last indexes of the string.

Java program that uses append, System.out

public class Program {
    public static void main(String[] args) {

	// Append strings to output stream.
	System.out.append("cat");
	System.out.append("\n");

	// Append range of CharSequence.
	System.out.append("java program", 5, 5 + 7);
    }
}

Output

cat
program

Read line input. We wrap a BufferedReader around System.in to read strings from the console. The syntax is complicated, but once we get an available BufferedReader, it is easy to use.

InputStreamReader: This class can be initialized from an InputStream (such as System.in).

BufferedReader: This class provides utility methods for reading from a stream. It is also used on files.

Files, BufferedReader
Java program that reads line from console

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Program {
    public static void main(String[] args) throws IOException {

	// Get BufferedReader for System.in.
	BufferedReader in = new BufferedReader(
	    new InputStreamReader(System.in));

	// Read line from console.
	String line = in.readLine();
	System.out.println("You typed " + line);
    }
}

Output

something
You typed something

Interactive program. This program uses a while-true loop to infinitely ask the user for input. It then parses the input into an int, using 0 for invalid values.

WhileParseInt

Switch: The program uses a switch statement to handle the user-input. The "break" statements apply to the switch statement, not the loop.

Switch

Results: When I type "cat" the default case is reached. With the lines "1" and "2" the cases labeled 1 and 2 are entered.

Java program that reads input interactively

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Program {
    public static void main(String[] args) throws IOException {

	// Read input with BufferedReader.
	BufferedReader in = new BufferedReader(
	    new InputStreamReader(System.in));

	while (true) {
	    // Read line and try to call parseInt on it.
	    String line = in.readLine();
	    int result;
	    try {
		result = Integer.parseInt(line);
	    } catch (NumberFormatException exception) {
		result = 0;
	    }

	    // Handle user input in a switch case.
	    switch (result) {
	    default:
		System.out.println("Default");
		break;
	    case 1:
		System.out.println("One");
		break;
	    case 2:
		System.out.println("Two");
		break;
	    }
	}
    }
}

Output

cat
Default
2
Two
1
One
Default

Console support. Java provides robust console support. It recognizes the utility of these programs. Console programs are often harder to use, but easier to develop.