Class In
The Locale used is: language = English, country = US. This is consistent
with the formatting conventions with Java floating-point literals,
command-line arguments (via Double.parseDouble(String)
)
and standard output.
For additional documentation, see Section 3.1 of Computer Science: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne.
Like Scanner
, reading a token also consumes preceding Java
whitespace, reading a full line consumes
the following end-of-line delimeter, while reading a character consumes
nothing extra.
Whitespace is defined in Character.isWhitespace(char)
. Newlines
consist of \n, \r, \r\n, and Unicode hex code points 0x2028, 0x2029, 0x0085;
see
Scanner.java (NB: Java 6u23 and earlier uses only \r, \r, \r\n).
- Author:
- David Pritchard, Robert Sedgewick, Kevin Wayne
-
Constructor Summary
ConstructorDescriptionIn()
Initializes an input stream from standard input.Initializes an input stream from a filename or web page name.Initializes an input stream from a socket.Initializes an input stream from a URL.Initializes an input stream from a givenScanner
source; use withnew Scanner(String)
to read from a string. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes this input stream.boolean
exists()
Returns true if this input stream exists.boolean
Returns true if this input stream has more input (including whitespace).boolean
Returns true if this input stream has a next line.boolean
isEmpty()
Returns true if input stream is empty (except possibly whitespace).static void
Unit tests theIn
data type.readAll()
Reads and returns the remainder of this input stream, as a string.double[]
Reads all remaining tokens from this input stream, parses them as doubles, and returns them as an array of doubles.int[]
Reads all remaining tokens from this input stream, parses them as integers, and returns them as an array of integers.String[]
Reads all remaining lines from this input stream and returns them as an array of strings.long[]
Reads all remaining tokens from this input stream, parses them as longs, and returns them as an array of longs.String[]
Reads all remaining tokens from this input stream and returns them as an array of strings.boolean
Reads the next token from this input stream, parses it as aboolean
(interpreting either"true"
or"1"
astrue
, and either"false"
or"0"
asfalse
).byte
readByte()
Reads the next token from this input stream, parses it as abyte
, and returns thebyte
.char
readChar()
Reads and returns the next character in this input stream.double
Reads the next token from this input stream, parses it as adouble
, and returns thedouble
.float
Reads the next token from this input stream, parses it as afloat
, and returns thefloat
.int
readInt()
Reads the next token from this input stream, parses it as aint
, and returns theint
.readLine()
Reads and returns the next line in this input stream.long
readLong()
Reads the next token from this input stream, parses it as along
, and returns thelong
.short
Reads the next token from this input stream, parses it as ashort
, and returns theshort
.Reads the next token from this input stream and returns it as aString
.
-
Constructor Details
-
In
public In()Initializes an input stream from standard input. -
In
Initializes an input stream from a socket.- Parameters:
socket
- the socket- Throws:
IllegalArgumentException
- if cannot opensocket
IllegalArgumentException
- ifsocket
isnull
-
In
Initializes an input stream from a URL.- Parameters:
url
- the URL- Throws:
IllegalArgumentException
- if cannot openurl
IllegalArgumentException
- ifurl
isnull
-
In
Initializes an input stream from a filename or web page name.- Parameters:
name
- the filename or web page name- Throws:
IllegalArgumentException
- if cannot openname
as a file or URLIllegalArgumentException
- ifname
isnull
-
In
Initializes an input stream from a givenScanner
source; use withnew Scanner(String)
to read from a string.Note that this does not create a defensive copy, so the scanner will be mutated as you read on.
- Parameters:
scanner
- the scanner- Throws:
IllegalArgumentException
- ifscanner
isnull
-
-
Method Details
-
exists
public boolean exists()Returns true if this input stream exists.- Returns:
true
if this input stream exists;false
otherwise
-
isEmpty
public boolean isEmpty()Returns true if input stream is empty (except possibly whitespace). Use this to know whether the next call toreadString()
,readDouble()
, etc will succeed.- Returns:
true
if this input stream is empty (except possibly whitespace);false
otherwise
-
hasNextLine
public boolean hasNextLine()Returns true if this input stream has a next line. Use this method to know whether the next call toreadLine()
will succeed. This method is functionally equivalent tohasNextChar()
.- Returns:
true
if this input stream has more input (including whitespace);false
otherwise
-
hasNextChar
public boolean hasNextChar()Returns true if this input stream has more input (including whitespace). Use this method to know whether the next call toreadChar()
will succeed. This method is functionally equivalent tohasNextLine()
.- Returns:
true
if this input stream has more input (including whitespace);false
otherwise
-
readLine
Reads and returns the next line in this input stream.- Returns:
- the next line in this input stream;
null
if no such line
-
readChar
public char readChar()Reads and returns the next character in this input stream.- Returns:
- the next
char
in this input stream - Throws:
NoSuchElementException
- if the input stream is empty
-
readAll
Reads and returns the remainder of this input stream, as a string.- Returns:
- the remainder of this input stream, as a string
-
readString
Reads the next token from this input stream and returns it as aString
.- Returns:
- the next
String
in this input stream - Throws:
NoSuchElementException
- if the input stream is empty
-
readInt
public int readInt()Reads the next token from this input stream, parses it as aint
, and returns theint
.- Returns:
- the next
int
in this input stream - Throws:
NoSuchElementException
- if the input stream is emptyInputMismatchException
- if the next token cannot be parsed as anint
-
readDouble
public double readDouble()Reads the next token from this input stream, parses it as adouble
, and returns thedouble
.- Returns:
- the next
double
in this input stream - Throws:
NoSuchElementException
- if the input stream is emptyInputMismatchException
- if the next token cannot be parsed as adouble
-
readFloat
public float readFloat()Reads the next token from this input stream, parses it as afloat
, and returns thefloat
.- Returns:
- the next
float
in this input stream - Throws:
NoSuchElementException
- if the input stream is emptyInputMismatchException
- if the next token cannot be parsed as afloat
-
readLong
public long readLong()Reads the next token from this input stream, parses it as along
, and returns thelong
.- Returns:
- the next
long
in this input stream - Throws:
NoSuchElementException
- if the input stream is emptyInputMismatchException
- if the next token cannot be parsed as along
-
readShort
public short readShort()Reads the next token from this input stream, parses it as ashort
, and returns theshort
.- Returns:
- the next
short
in this input stream - Throws:
NoSuchElementException
- if the input stream is emptyInputMismatchException
- if the next token cannot be parsed as ashort
-
readByte
public byte readByte()Reads the next token from this input stream, parses it as abyte
, and returns thebyte
.To read binary data, use
BinaryIn
.- Returns:
- the next
byte
in this input stream - Throws:
NoSuchElementException
- if the input stream is emptyInputMismatchException
- if the next token cannot be parsed as abyte
-
readBoolean
public boolean readBoolean()Reads the next token from this input stream, parses it as aboolean
(interpreting either"true"
or"1"
astrue
, and either"false"
or"0"
asfalse
).- Returns:
- the next
boolean
in this input stream - Throws:
NoSuchElementException
- if the input stream is emptyInputMismatchException
- if the next token cannot be parsed as aboolean
-
readAllStrings
Reads all remaining tokens from this input stream and returns them as an array of strings.- Returns:
- all remaining tokens in this input stream, as an array of strings
-
readAllLines
Reads all remaining lines from this input stream and returns them as an array of strings.- Returns:
- all remaining lines in this input stream, as an array of strings
-
readAllInts
public int[] readAllInts()Reads all remaining tokens from this input stream, parses them as integers, and returns them as an array of integers.- Returns:
- all remaining lines in this input stream, as an array of integers
-
readAllLongs
public long[] readAllLongs()Reads all remaining tokens from this input stream, parses them as longs, and returns them as an array of longs.- Returns:
- all remaining lines in this input stream, as an array of longs
-
readAllDoubles
public double[] readAllDoubles()Reads all remaining tokens from this input stream, parses them as doubles, and returns them as an array of doubles.- Returns:
- all remaining lines in this input stream, as an array of doubles
-
close
public void close()Closes this input stream. -
main
Unit tests theIn
data type.- Parameters:
args
- the command-line arguments
-