Reading Input
Download
Report
Transcript Reading Input
Reading Input
Overview
Introduction to Wrapper classes.
Introduction to Exceptions (Java run-time
errors).
Console input using the BufferedReader
class.
1
WRAPPER CLASSES
Java uses primitive types, such as int and char, for
performance reasons.
However, there are times when a programmer
needs to create an object representation for one of
these primitive types.
Java provides a Wrapper class for each of the
primitive types. All these classes are in the
java.lang package:
Primitive type
Wrapper class
boolean
byte
char
Boolean
Byte
Character
short
int
long
float
Short
Integer
Long
Float
double
Double
2
WRAPPER CLASSES (cont.)
Wrapper classes are used to provide constants and
general methods for the primitive data types.
Converting strings into numbers
Each of the Wrapper classes Byte, Short, Integer,
Long, Float, and Double has a method to convert a
string representation of a number of the
corresponding primitive type into its numeric
format:
Wrapper class
Parse method
Byte
parseByte(string)
Short
parseShort(string)
Integer
parseInt(string)
Long
parseLong(string)
Float
parseFloat(string)
Double
parseDouble(string)
Examples:
int numStudents = Integer.parseInt(“500”) ;
String inputLine ;
. . .
double studentGPA = Double.parseDouble( inputLine) ;
3
INTRODUCTION TO EXCEPTIONS
A program may have one or more of three types of
errors:
1. Syntax errors or Compile-time errors.
2. Run-time or Execution-time errors.
3. Logic errors.
A Java exception is an object that describes a runtime error condition that has occurred in a piece of
Java code or in the Java run-time System.
All Java exception classes are subclasses of the
Throwable class.
Most exception classes are defined in the java.io and
java.lang packages. other packages like: java.util,
java.awt, java.net, java.text also define exception
classes.
Catching and throwing an exception
A piece of Java code containing statements to handle
an exception is said to catch the exception; otherwise it
is said to throw that exception.
An exception that is not caught by any portion of a
Java program will ultimately be caught by the default
exception handler. The default exception handler
displays a string describing the exception.
4
INTRODUCTION TO EXCEPTIONS (cont.)
A partial hierarchy of Java exceptions:
Throwable
Exception
Error
...
. . .
IOException
RuntimeException
. . .
. . .
IllegalArgumentException
NullPointerException
NumberFormatException
ArithmeticException
5
INTRODUCTION TO EXCEPTIONS (cont.)
Checked and Unchecked exceptions
Java exceptions are classified into two categories: checked
exceptions and unchecked exceptions.
Any exception that derives from the class Error or the class
RuntimeException is an unchecked exception. All other
exceptions are checked exceptions.
The Java rule for thrown exceptions:
A METHOD MUST DECLARE ALL CHECKED
EXCEPTIONS IT MAY THROW, OTHERWISE THE
JAVA COMPILER WILL ISSUE AN ERROR
MESSAGE.
The throws clause
A method declares that it may throw an exception by a
throws clause in the method header:
access-specifier return-type method-name(parameter-list)
throws exception-list
{
. . .
}
6
INTRODUCTION TO EXCEPTIONS (cont.)
Example:
import java.io.* ;
public static void main(String[ ] args) throws
IOException
{
. . .
}
One or more statements that may throw an
IOException that is not handled.
Note: When a method declares that it throws an
exception, then it may throw an exception of that
class or any of its subclasses.
7
CONSOLE INPUT USING BufferedReader CLASS
In Java I/O is handled by streams.
Input stream
An input stream is an object that takes data
from an input source and delivers that data to a
program.
Output stream
An output stream is an object that delivers data
to an output destination.
In Java, console input is usually accomplished by
reading from the input stream System.in of the
class java.lang.System
System.in represents the standard input stream
(i.e., the keyboard).
Unfortunately, System.in has no methods for
reading characters, strings, or numbers. It has a
read method to read a single byte at a time.[Java
uses Unicode in which each character is two
bytes]
To be able to read characters, strings, or numbers,
System.in must be wrapped in other objects.
8
CONSOLE INPUT USING BufferedReader CLASS (cont.)
To turn System.in into a Reader object (i.e., an object
that is capable of reading one character at a time), wrap
System.in in an InputStreamReader object:
InputStreamReader reader =
new InputStreamReader(System.in) ;
To turn the object referenced by reader into an object
with the ability to read entire lines at a time, wrap the
object in a BufferedReader object:
BufferedReader stdin =
new BufferedReader(reader) ;
The steps of turning System.in into a BufferedReader
object can be combined into a single statement:
BufferedReader stdin = new BufferedReader( new
InputStreamReader(System.in)) ;
Note: Both the BufferedReader class and the
InputStreamReader class are defined in the java.io
package.
9
CONSOLE INPUT USING BufferedReader CLASS (cont.)
The read( ) and readLine( ) methods
The object to which stdin refers to contains a read( )
method that reads one character at a time, and returns its
integer code in the range 0 to 65535:
int read( ) throws IOException
It also contains a readLine( ) method that reads one
input line at a time, and returns it as a string:
String readLine( ) throws IOException
Example: Reading a string
import java.io.*;
public class ReadString
{
public static void main(String[ ] args) throws
IOException
{
BufferedReader stdin = new
BufferedReader(new InputStreamReader(System.in))
;
System.out.println(“Enter a line of text:”) ;
String message = stdin.readLine( ) ;
System.out.println(“You entered: ” + message ) ;
}
}
10
CONSOLE INPUT USING BufferedReader CLASS (cont.)
Example: Reading a character
char ch = (char) stdin.read( ) ;
Numeric input
The Java library contains no classes to read
numbers directly. One way of processing numeric
input is to read it as a string using the readLine( )
method then convert it to its corresponding numeric
value, using the parse method of an appropriate
Wrapper class.
Example:
String inputLine = stdin.readLine( ) ;
int numStudents = Integer.parseInt(inputLine) ;
double speed = Double.parseDouble(stdin.readLine( )) ;
float height = Float.parseFloat(stdin.readLine( ).trim( ));
Note: Each parse method can throw an unchecked
NumberFormatException
11