# Class IO

java.lang.Object
java.lang.IO

public final class IO extends Object
A collection of static methods that provide convenient access to `System.in` and `System.out` for line-oriented input and output.

The `readln()` and `readln(String)` methods decode bytes read from `System.in` into characters. The charset used for decoding is specified by the `stdin.encoding` property. If this property is not present, or if the charset it names cannot be loaded, then UTF-8 is used instead. Decoding always replaces malformed and unmappable byte sequences with the charset's default replacement string.

Charset decoding is set up upon the first call to one of the `readln` methods. Decoding may buffer additional bytes beyond those that have been decoded to characters returned to the application. After the first call to one of the `readln` methods, any subsequent use of `System.in` results in unspecified behavior.

API Note:
  The expected use case is that certain applications will use only the `readln` methods to read from the standard input, and they will not mix these calls with other techniques for reading from `System.in`.
Since:
  25

## Method Summary

Modifier and Type
Method
Description
`static void`
`print(Object obj)`
Writes a string representation of the specified object to the standard output.
`static void`
`println()`
Writes a line separator to the standard output.
`static void`
`println(Object obj)`
Writes a string representation of the specified object and then writes a line separator to the standard output.
`static String`
`readln()`
Reads a single line of text from the standard input.
`static String`
`readln(String prompt)`
Writes a prompt and then reads a line of input.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Method Details

### println

public static void println(Object obj)
Writes a string representation of the specified object and then writes a line separator to the standard output.

The effect is as if `println(obj)` had been called on `System.out`.

Parameters:
  `obj` - the object to print, may be `null`

### println

public static void println()
Writes a line separator to the standard output.

The effect is as if `println()` had been called on `System.out`.

### print

public static void print(Object obj)
Writes a string representation of the specified object to the standard output.

The effect is as if `print(obj)` had been called on `System.out`.

Parameters:
  `obj` - the object to print, may be `null`

### readln

public static String readln()
Reads a single line of text from the standard input.

One line is read from the decoded input as if by `BufferedReader.readLine()` and then the result is returned.

If necessary, this method first sets up charset decoding, as described in above in the class specification.

Returns:
  a string containing the line read from the standard input, not including any line separator characters. Returns `null` if an end of stream has been reached without having read any characters.
Throws:
  `IOError` - if an I/O error occurs

### readln

public static String readln(String prompt)
Writes a prompt and then reads a line of input.

Writes a prompt as if by calling `print`, and then reads a single line of text as if by calling `readln`.

If necessary, this method first sets up charset decoding, as described in above in the class specification.

Parameters:
  `prompt` - the prompt string, may be `null`
Returns:
  a string containing the line read from the standard input, not including any line separator characters. Returns `null` if an end of stream has been reached without having read any characters.
Throws:
  `IOError` - if an I/O error occurs