Streams and Error Handling in Java

48
UCSC 2003. All rights reserved.No parts of this material IT1202-Fundamentals Of Programming (Using JAVA) Streams & Error Handling in Java Version 1.0

Transcript of Streams and Error Handling in Java

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 1/48

UCSC 2003. All rightsreserved.No parts of this material

IT1202-Fundamentals Of Programming

(Using JAVA)Streams & Error Handling in Java

Version 1.0

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 2/48

UCSC 2003. All rightsreserved.No parts of this material

Input & output

• Most real applications of Java are not textbased, console programs. Rather they are

graphically oriented applets that rely upon

Java’s Abstract Window Toolkit (AWT) for

interactions with the user.

• Java support string flexible support for I/O

as it relates to files and network .

• Java’s I/O system is cohesive andconsistent.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 3/48

UCSC 2003. All rightsreserved.No parts of this material

Using command line arguments

• As you know Java applications arestandalone programs, so, it’s useful topass arguments or options to anapplication.

• Arguments can be used to determine howthe application is going to run.

OR

• Enable a generic application to operate on

different kinds of input.• Using program arguments can,

 – Turn on debugging input.

 – Indicate a filename to load.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 4/48

UCSC 2003. All rightsreserved.No parts of this material

• This caries based on the platform you’re

running.• On Windows & UNIX can use command line.

• To pass arguments to a Java program onWindows or Solaris, the arguments should

be appended to the command line when

the program is run.eg:

Java MyProg ram argum entOne 2 three

In th ee three arguments w ere passed to a prog ram.

argumentOne, the number 2 & th ree. Note that a space

Separates each of th e arguments.

Passing Arguments to Java Applications

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 5/48

UCSC 2003. All rightsreserved.No parts of this material

Passing Arguments to Java Applications….. 

• To group arguments that include spaces,the arguments should be surrounded with

“ ” marks. 

• These quotation marks are not included in

the argument when it is sent to theprogram & received using the main()

method.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 6/48

UCSC 2003. All rightsreserved.No parts of this material

• When an application is run with arguments,

Java stores the arguments as an array of as

strings & passes the array to the application’s

main() method.eg:

pub l ic static v oid m ain(Str ing arguments[ ] ) {

 // body o f method

 }In here, arguments  is the name of the array o f str ing s that

con tains l is t of arguments .

Handling Arguments in Java Application

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 7/48

UCSC 2003. All rightsreserved.No parts of this material

Handling Arguments in Java Application… 

• Inside the main() method, you can handle thearguments your program was given, – By iterating.

And

 – Handling them in some manner.eg:

class EchoA rgs {

publ ic stat ic vo id main (Str ing arguments[]) {

for (int i=0; i<argum ents .length ; i++) {

System.out.println(“Argument” + i + “:” +arguments [ i ] );

 }

 }

 }

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 8/48

UCSC 2003. All rightsreserved.No parts of this material

• Eg: – Input

 java EchoArgs Wilhelm Niekro Hough 49

 – Output

Argument 0: Wi lhelmArgument 1: Niekro

Argument 2: Hough

Arg ument 3: 49

Handling Arguments in Java Application… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 9/48

UCSC 2003. All rightsreserved.No parts of this material

• All arguments passed to a Javaapplication are stored in an array ofstrings.

• To treat them as something other than

strings, you must convert them.• The following program takes any number of

numeric arguments & returns the sum & theaverage of those arguments.class SumAverage {

publ ic stat ic void m ain(Str ing args[]) {

in t sum = 0;

for (int I = 0; i<args .length ; i++) {

Sum += args[ i ] ;

 }

Handling Arguments in Java Application… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 10/48

UCSC 2003. All rightsreserved.No parts of this material

System.out.println(“Sum is;” + sum); System.out.println(“Average is:” + 

(float) sum / args.length );

 }

 }

Output

SumAverage.java.6: Incompatible type for +=. Can’t convert  

 java.lang .Str ing to in t.

Sum += args[ i ] ;

• This error occurs the argument array is an array

of strings.

Handling Arguments in Java Application… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 11/48

UCSC 2003. All rightsreserved.No parts of this material

•  You have to convert them from strings tointegers using a class method for the

Integer  class called parseInt.Sum += Integer.parseInt(args[i ]) ;

• By applying the following inputs to theexample we can run the program.

• InputJava SumAverage 123

• OutputSum is : 6

Av erage is : 2

Handling Arguments in Java Application… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 12/48

UCSC 2003. All rightsreserved.No parts of this material

Streams: input stream, output stream &

error stream

• Is a path of communication between asource of some information anddestination

• The source can be a file, computersmemory or the Internet

• Input Streams  sends data from a sourceinto a program

• ou tput st reams  sends data out of aprogram to a destination

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 13/48

UCSC 2003. All rightsreserved.No parts of this material

• Java programs perform I/O through streams.

• A stream is a path of communication between asource of some information and destination and astream is linked to a physical device by the JavaI/O system.

• The source can be a file, computers memory orthe Internet.

• All streams behave in the same manner, even ifthe actual physical devices to which they arelinked differ.

• Input Streams allows you to read data from asource

• output streams allows you to write data to adestination

Streams……… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 14/48

UCSC 2003. All rightsreserved.No parts of this material

• Byte streams and character streams – Java 2 defines two types of streams: Byte and

Character.

 – Byte streams

• Byte streams provide a convenient meansfor handling input and output of bytes.

• Byte streams are used when reading orwriting binary data.

-Character streams

• Character streams provide a convenientmeans for handling input and output ofcharacters.

• They are unicode and therefore, can be

internationalized.

Streams……… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 15/48

UCSC 2003. All rightsreserved.No parts of this material

• Using a Stream

 – Whether you’re using a byte stream or acharacter stream, the procedure forusing either in Java is largely the same.

 – For an input stream, the first step is tocreate an object that is associated withthe data source.

 – After you have created a stream object,

you can read information from thatstream by using one of the object’smethods. FileInputStream includes aread() method that returns a byte read

from the file.

Streams……… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 16/48

UCSC 2003. All rightsreserved.No parts of this material

Using a Stream………. 

• When you’re done reading information

from the stream, you call the close()method to indicate that you’re done usingthe stream.

• For an output stream, you begin by

creating an object that’s associated withthe data’s destination. BufferedReaderclass can be used to create such text files.

• The write() method is the simplest method

to send information to the output stream’sdestination.

• A BufferedReader write() method can sendindividual characters to an output stream.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 17/48

UCSC 2003. All rightsreserved.No parts of this material

Using a Stream……….. 

• The close() is called on an output streamwhen you have no more information to

send.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 18/48

UCSC 2003. All rightsreserved.No parts of this material

Filtering a Stream

• A filter is a type of stream that modifiesthe way an existing stream is handled.

• The procedure for using a filter on a

stream is basically as follows.

 – Create a stream associated with a data source

or a data destination.

 – Associate a filter with that stream.

 – Read or write data from the filter rather than

the original stream.

• The methods you call on a filter are,

 – read()

 – write()

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 19/48

UCSC 2003. All rightsreserved.No parts of this material

• A filter can associate with another filter.

Filtering a Stream……….. 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 20/48

UCSC 2003. All rightsreserved.No parts of this material

The predefined Stream

•  All Java programs automatically import theJava.lang package.

• This package defines a class called System,

which encapsulates severl aspects of the run-

time environment. E.g. current time and

settings of various properties associated with

the system.

• System also contains three predefined stream

variables ,in, out and err.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 21/48

UCSC 2003. All rightsreserved.No parts of this material

Reading Console Input

• In Java1.0, the only way to perform consoleinput was to use a byte stream.

• The predefined method of reading console inputfor Java2 is to use a character- oriented stream.

• In Java, console input is accomplished byreading from System.in.

• To obtain a character- based stream that isattached to the console, you wrap system.in in a

BuffrerdReader object.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 22/48

UCSC 2003. All rightsreserved.No parts of this material

Byte stream

• All byte streams are either a subclass of – InputStream

OR

 – OutputStream

• These classes are abstract.• Instead you can create through one of

their subclasses. – FileInputStream & Fi leOutpu tStream

By te streams s tored in f i les on d isk, CD-ROM or othersto rage devices.

 – DataInputStream & DataOutpu tStream

A f i ltered by te stream from wh ich data such as

integers &

Float ing-point numbers can be read.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 23/48

UCSC 2003. All rightsreserved.No parts of this material

• File Streams – These are used to exchange data with files on

your disk drives, CD-ROMs or other storage

devices.

 –  You can send bytes to a file output stream &receive bytes from a file input stream.

Byte stream………. 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 24/48

UCSC 2003. All rightsreserved.No parts of this material

• File Input Streams

 – A file input stream can be created withthe FileInputStream(String) constructor.

 – The string argument should be the

name of the file. – The following statement creates a file

input stream from the file scores.dat.FileInp utStream fis = new

FileInputStream(“scores.dat”); 

 – After you create a file input stream, youcan read bytes from the stream bycalling its read() method.

Byte stream………. 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 25/48

UCSC 2003. All rightsreserved.No parts of this material

• To read more than one byte of data fromthe stream, call its read(byte[], int, int)

method.

Byte stream………. 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 26/48

UCSC 2003. All rightsreserved.No parts of this material

• File Output Streams – A file output stream can be created with the

FileOutputStream(String) constructor.

 –  You can create a file output stream that

appends data after the end of an existing filewith the FileOutputStream(String, boolean)

constructor.

 – The file output stream’s write(int) method is

used to write bytes to the stream.

 – To write more than one byte, the

write(byte[],int,int) method can be used. 

Byte stream………. 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 27/48

UCSC 2003. All rightsreserved.No parts of this material

Data Streams

• When you need to work with data that isn’trepresented as bytes or characters, youcan use data input & data output streams.

• These streams filter an existing byte

stream so that each of the followingprimitive types can be read or writtendirectly from the stream:boolean, byte, double, float, int, long & short

• A data input stream is created with theDataInputStream(InputStream)constructor.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 28/48

UCSC 2003. All rightsreserved.No parts of this material

• A data output stream requires theDataOutputStream(OutputStream)

constructor which indicates the

associated output stream.

Data Streams……… 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 29/48

UCSC 2003. All rightsreserved.No parts of this material

Input and Output

• Reading Characters. – To read a character from a BufferedReader, use read().

 – Each time read() is called it reds a character from theinput stream and returns it as an integer value.

• Readong Strings – To read a string from the keyboard use readline() that i

a member of the BuffreredReader class.

•   Writing Console Output –   Console output is most easily accomplished with

print() and println().

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 30/48

UCSC 2003. All rightsreserved.No parts of this material

Input and Output

 – These methods are defined by the classPrintStream.

 – PrintStream implements the low-level

method write().

 – You will not use write() to perform sonsole

output (although doing so might be usefu

in some situations), because print() and

println() are subtantially easier to use.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 31/48

UCSC 2003. All rightsreserved.No parts of this material

Input and Output

• The PrintWriter class – System.out is recommended mostly for debugging

purposes or sample programs, for real-worldprograms, the recommended method of writing tothe console when using Java is through a

PrintWriter atream. – Printwriter is one of the character- based classes.

 – PrintWriter supports the print() and println()methods for all types including object. Thus youcan use these methods in the same way as theyhave been used with system.out.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 32/48

UCSC 2003. All rightsreserved.No parts of this material

Input and Output

• Reading and writing files – Java provides a no. of classes and methods that

allow you to read and write files.

 – In java, all files are byte-oriented and java

provides methods to read and write byte fromand to a file.

 – Java allows you to wrap a byte-oriented filesystem within a character-based object.

 – Two of the most-often used stream classes are

FileInputStream and FileOutputStream, whichcreate byte streams linked to files.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 33/48

UCSC 2003. All rightsreserved.No parts of this material

Input and Output

• Creating an input file:-FileInputStream (String f i leName ) throwsFileNotFoundExeption

• Opening an output file:-FileOutputStream (String f i leName ) throwsFileNotFoundExeption

• Closing a file:-Void close() throws IOException

• Read from a fileVoid write(int byteval) throws IOException

This method writes the byte specified by the byteval to the file.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 34/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling• A Java Exception is an object that

describes an exceptional (that is, error)condition that has occurred in a piece ofcode.

• Exceptions can be generated by the Java

run-time system, or they can e manuallygenerated by your code.

• Exceptions thrown by Java relate tofundamental errors that violate the rules of

the Java language or the constraints ofthe Java execution environment. 

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 35/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

 java .lang.Object

 java .lang.Throwable

 java .lang.Exception

IOException

RuntimeException

Java Exception

class hierarchy

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 36/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

• Handling Exceptions – In many cases Java Compiler enforces

Exception Management when methods

that throw exceptions are used

 – it is necessary to handle those

exceptions within the code, or that code

will not compile at all

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 37/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

• Protecting code and catching Exceptions – To catch an Exception,

• Although the default exception handler provided by the Javarun-time system is useful for debugging, you will usually wantto handle an exception by your self.

• To guard against and handle a runtime error, protect your codethat contains an exception throwable method within a t ry  block

• Test and deal with the exception within a catch  block

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 38/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

Class DivideZero {

static int anyFunction (int x, int y) {

try {

int a = x / y;return a;

}

catch (ArithmeticException e) {

System.out.println(“Division by Zero “); 

}

}

Code is protectedusing try Block

Exception is caught and handled

using catch block

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 39/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

• Displaying a description of an exception

 – Throwable overrides the toString() . So it

returns a string containing a description ofthe exception.

 – E.g.catch (ArithmeticException e) {

System.out.println(“Exception : “+e); 

}Exception is passed as an argument in a println() statement

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 40/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

• Multiple catch Clauses – When more than one exception is raised

by a single piece of code you canspecify two or more catch clauses, each

catching a different type of exception . – When you use multiple catch

statements , exception subclasses mustcome before any of there superclasses.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 41/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

• Nested Try Statements

 – The try statement can be nested.

 – Each time a try statement is entered ,the context of that exception is pushedon the stack.

 – Nesting of try statements can occur in

less obvious ways when method callsare involved.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 42/48

UCSC 2003. All rightsreserved.No parts of this material

Error Handling Contd...

• Throw clause – It is possible for your program to throw an exception

using throw statement .

Throw ThrowableInstance  ThrowableInstance must be an object of type Throwable or a

subclass of Throwable.

Simple types, such as int or char, as well as non-Throwable

classes such as String and Obiect cannot be used as

exceptions.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 43/48

UCSC 2003. All rights

reserved.No parts of this material

Error Handling Contd...

• finally  clause

 – If there is a piece of code that should be

executed whether an exception occurs

or not then• include it within the optional f inal ly  clause

of the try..catch block

• an example may be closing an open file.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 44/48

UCSC 2003. All rights

reserved.No parts of this material

Error Handling Contd...

• throws clause – used to indicate that a method will throw an

exception.

 – Used after the signature of a method (beforethe opening curly bracket)

 – if multiple Exceptions are thrown, include them

in throws clause separated by commas.

Public myMethod (int x, int y) throws Exception1,Exceptio

{

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 45/48

UCSC 2003. All rights

reserved.No parts of this material

Error Handling Contd...

• throws clause contd… 

 – this clause also may be included in a

method that throws an exception which

you do not intend to do anything about.

 – It makes sense that the method that

calls your method should handle the

exception in its code , not within yourmethod.

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 46/48

UCSC 2003. All rights

reserved.No parts of this material

Error Handling Contd...

• Java’s built –in Exceptions – Inside the standard package Java.lang, java defines

several exception classes.

 – The most general of these exceptions are subclassesof the standard tye RuntimeException.

 – As Java.lang is implicitly imported in to all Java

programs, most exceptions derived from

RuntimeException are automatically available; theyneed not be included in a method’s throw list.

Error Handling Contd

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 47/48

UCSC 2003. All rights

reserved.No parts of this material

Error Handling Contd...

• Defining and Generating Exceptions… 

 –  You can define your own exceptions and throwthem as you would throw any standard exception.

 – First You need to define a new exception class

• it should be a sub class of class throwable or any sub

class of throwable. – Create a new Object of the defined class using

new and throw it

Error Handling Contd

8/12/2019 Streams and Error Handling in Java

http://slidepdf.com/reader/full/streams-and-error-handling-in-java 48/48

UCSC 2003 All rights

Error Handling Contd...public class SunSpotException

extends Exception {public SunSpotException() {}

public SunSpotExceotion(String msg) {

super(msg);

}}

Throw new SunSpotException ( );OR

throw new SunSpotException (“This is

to test”); 

Defining Exception