KEMBAR78
Input Output Streams.ppt standard input output | PPT
Standard input, output and error
Lecture Under Construction
Contents
• Overview of I/O Streams
• Character Streams
• Byte Streams
• Using the Streams
• Object Serialization
• Working with Random Access files
• Standard IO Streams
Overview of I/O Streams
To bring in information, a program opens a
stream on an information source (a file,
memory, a socket) and reads the information
sequentially, as shown in the following figure.
Similarly, a program can send information
to an external destination by opening a
stream to a destination and writing the
information out sequentially, as shown in
the following figure.
Overview of I/O STREAMS
Contd.
Overview of I/O streams
Contd..
• The java.io package contains a collection of
stream classes that support algorithms for
reading and writing. To use these classes, a
program needs to import the java.io
package.
• The stream classes are divided into two class
hierarchies, based on the data type (either
characters or bytes) on which they operate i.e
Character Stream and Byte Stream
Character Streams
• Reader and Writer are the abstract
superclasses for character streams in
java.io.
• Reader provides the API and partial
implementation for readers ( streams that
read 16-bit characters ) and Writer
provides the API and partial
implementation for writers ( streams that
write 16-bit characters).
Character Streams Contd.
• The following figure shows the class
hierarchies for the Reader and Writer
classes.
Byte Streams
• To read and write 8-bit bytes, programs
should use the byte streams, descendents
of InputStream and OutputStream .
• InputStream and OutputStream provide
the API and partial implementation for
input streams (streams that read 8-bit
bytes) and output streams (streams that
write 8-bit bytes).
Byte Streams (cont.)
• These streams are typically used to read
and write binary data such as images and
sounds.
• Two of the byte stream classes,
ObjectInputStream and
ObjectOutputStream, are used for object
serialization.
Byte Streams (cont.)
• The class hierarchy for the Reader Class
Byte Stream (cont.)
• Class hierarchy figure for Writer Class
How to Use File Streams
The file streams-- FileReader , FileWriter ,
FileInputStream , and FileOutputStream -- read or write
from a file on the native file system.
Here is simple code to create a file reader
File inputFile = new File("farrago.txt");
FileReader in = new FileReader(inputFile);
FileWriter out = new FileWriter(outputFile);
This reads characters from the reader as long as there's
more input in the input file and writes those characters
to the writer.
How to Use Pipe Streams
• Pipes are used to channel the output from
one thread into the input of another.
PipedReader and PipedWriter (and their
input and output stream counterparts
PipedInputStream and
PipedOutputStream ) implement the input
and output components of a pipe.
How to wrap a stream
Streams are wrapped to combine the various
features of the many streams.
example code:
BufferedReader in = new
BufferedReader(source);
The code opens a BufferedReader on source,
which is another reader of a different type. This
essentially "wraps" source in a BufferedReader.
The program reads from the BufferedReader,
which in turn reads from source.
How to Concatenate Files
• The SequenceInputStream creates a single input
stream from multiple input sources.
example code :
ListOfFiles mylist = new ListOfFiles(args);
SequenceInputStream s = new
SequenceInputStream(mylist);
Here, the mylist object is an enumeration that
SequenceInputStream uses to get a new
InputStream whenever it needs one.
Working with Filter Streams
• The java.io package provides a set of abstract
classes that define and partially implement filter
streams. A filter stream filters data as it's being
read from or written to the stream.
• The filter streams are FilterInputStream , and
FilterOutputStream .
• A filter stream is constructed on another stream
(the underlying stream).
Object Serialization
• Two stream classes in java.io,
ObjectInputStream and
ObjectOutputStream, are used to read and
write objects.
• The key to writing an object is to represent
its state in a serialized form sufficient to
reconstruct the object as it is read. This
process is called object serialization.
Uses of Object Serialization
• Remote Method Invocation (RMI)--
communication between objects via
sockets
• Lightweight persistence--the archival of an
object for use in a later invocation of the
same program.
Working with Random Access
Files
• A random access file permits non-sequential or
random access to a file's contents.
• Using Random Access Files
Unlike the input and output stream classes in
java.io, RandomAccessFile is used for both reading
and writing files. You create a RandomAccessFile
object with different arguments depending on
whether you intend to read or write.
Standard IO Streams
• There are three standard streams, all of which are
managed by the java.lang.System class
• Standard input--referenced by System.in
– Used for program input, typically reads input entered by
the user.
• Standard output--referenced by System.out
– Used for program output, typically displays information
to the user.
• Standard error--referenced by System.err
– Used to display error messages to the user.
References
• http://java.sun.com/docs/books/tutorial/
essential/TOC.html#io
• http://www.codeguru.com/java/tij/
tij0114.shtml

Input Output Streams.ppt standard input output

  • 1.
  • 2.
  • 3.
    Contents • Overview ofI/O Streams • Character Streams • Byte Streams • Using the Streams • Object Serialization • Working with Random Access files • Standard IO Streams
  • 4.
    Overview of I/OStreams To bring in information, a program opens a stream on an information source (a file, memory, a socket) and reads the information sequentially, as shown in the following figure.
  • 5.
    Similarly, a programcan send information to an external destination by opening a stream to a destination and writing the information out sequentially, as shown in the following figure. Overview of I/O STREAMS Contd.
  • 6.
    Overview of I/Ostreams Contd.. • The java.io package contains a collection of stream classes that support algorithms for reading and writing. To use these classes, a program needs to import the java.io package. • The stream classes are divided into two class hierarchies, based on the data type (either characters or bytes) on which they operate i.e Character Stream and Byte Stream
  • 7.
    Character Streams • Readerand Writer are the abstract superclasses for character streams in java.io. • Reader provides the API and partial implementation for readers ( streams that read 16-bit characters ) and Writer provides the API and partial implementation for writers ( streams that write 16-bit characters).
  • 8.
    Character Streams Contd. •The following figure shows the class hierarchies for the Reader and Writer classes.
  • 9.
    Byte Streams • Toread and write 8-bit bytes, programs should use the byte streams, descendents of InputStream and OutputStream . • InputStream and OutputStream provide the API and partial implementation for input streams (streams that read 8-bit bytes) and output streams (streams that write 8-bit bytes).
  • 10.
    Byte Streams (cont.) •These streams are typically used to read and write binary data such as images and sounds. • Two of the byte stream classes, ObjectInputStream and ObjectOutputStream, are used for object serialization.
  • 11.
    Byte Streams (cont.) •The class hierarchy for the Reader Class
  • 12.
    Byte Stream (cont.) •Class hierarchy figure for Writer Class
  • 13.
    How to UseFile Streams The file streams-- FileReader , FileWriter , FileInputStream , and FileOutputStream -- read or write from a file on the native file system. Here is simple code to create a file reader File inputFile = new File("farrago.txt"); FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); This reads characters from the reader as long as there's more input in the input file and writes those characters to the writer.
  • 14.
    How to UsePipe Streams • Pipes are used to channel the output from one thread into the input of another. PipedReader and PipedWriter (and their input and output stream counterparts PipedInputStream and PipedOutputStream ) implement the input and output components of a pipe.
  • 15.
    How to wrapa stream Streams are wrapped to combine the various features of the many streams. example code: BufferedReader in = new BufferedReader(source); The code opens a BufferedReader on source, which is another reader of a different type. This essentially "wraps" source in a BufferedReader. The program reads from the BufferedReader, which in turn reads from source.
  • 16.
    How to ConcatenateFiles • The SequenceInputStream creates a single input stream from multiple input sources. example code : ListOfFiles mylist = new ListOfFiles(args); SequenceInputStream s = new SequenceInputStream(mylist); Here, the mylist object is an enumeration that SequenceInputStream uses to get a new InputStream whenever it needs one.
  • 17.
    Working with FilterStreams • The java.io package provides a set of abstract classes that define and partially implement filter streams. A filter stream filters data as it's being read from or written to the stream. • The filter streams are FilterInputStream , and FilterOutputStream . • A filter stream is constructed on another stream (the underlying stream).
  • 18.
    Object Serialization • Twostream classes in java.io, ObjectInputStream and ObjectOutputStream, are used to read and write objects. • The key to writing an object is to represent its state in a serialized form sufficient to reconstruct the object as it is read. This process is called object serialization.
  • 19.
    Uses of ObjectSerialization • Remote Method Invocation (RMI)-- communication between objects via sockets • Lightweight persistence--the archival of an object for use in a later invocation of the same program.
  • 20.
    Working with RandomAccess Files • A random access file permits non-sequential or random access to a file's contents. • Using Random Access Files Unlike the input and output stream classes in java.io, RandomAccessFile is used for both reading and writing files. You create a RandomAccessFile object with different arguments depending on whether you intend to read or write.
  • 21.
    Standard IO Streams •There are three standard streams, all of which are managed by the java.lang.System class • Standard input--referenced by System.in – Used for program input, typically reads input entered by the user. • Standard output--referenced by System.out – Used for program output, typically displays information to the user. • Standard error--referenced by System.err – Used to display error messages to the user.
  • 22.