Input/Output System Java Programming - Gujarat · Session 3 – B: I/O System Java Programming TCS...

Post on 05-Jul-2019

218 views 0 download

Transcript of Input/Output System Java Programming - Gujarat · Session 3 – B: I/O System Java Programming TCS...

Session 3 – B: I/O System Java Programming1TCS Confidential

Input/Output System

Java Programming

Session 3 – B: I/O System Java Programming2TCS Confidential

Input/Output in JavaThe Java I/O SystemStream TypesThe Byte Stream HierarchyPredefined Streams in JavaThe File ClassByte Stream Hierarchy Classes

Session 3 – B: I/O System Java Programming3TCS Confidential

The Java I/O System

JavaProgram

Hard Disk

Memory

Session 3 – B: I/O System Java Programming4TCS Confidential

The Java I/O SystemStreamsJava I/OPhysical Devices

Input StreamOutput Stream

JavaProgram

File

MemoryStream (Java I/O API)

Session 3 – B: I/O System Java Programming5TCS Confidential

Stream TypesTwo types of streams• Byte based

Used to read/write byte data (0-255)

• Character based Used to read/write textual,

Unicode data

Session 3 – B: I/O System Java Programming6TCS Confidential

Byte StreamsMain abstract classes

InputStreamOutputStream

Concrete stream classes for handling various devices (e.g. disk files, memory buffers)

Session 3 – B: I/O System Java Programming7TCS Confidential

Character StreamsMain abstract classes

ReaderWriter

Concrete subclasses implements required methods

Session 3 – B: I/O System Java Programming8TCS Confidential

Abstract ClassesStream Types – Java I/O

Streams

Byte Based

Character Based

InputStream

OutputStream

Reader

Writer

Session 3 – B: I/O System Java Programming9TCS Confidential

The Byte Stream Hierarchy

BufferedOutputStreamPrintStream

Object

InputStream OutputStreamFileInputStreamFilterInputStreamByteArrayInputStreamSequenceInputStreamPipedInputStream

FileOutputStreamFilterOutputStream

ByteArrayOutputStreamPipedOutputStream

BufferedInputStreamPushbackInputStream

Session 3 – B: I/O System Java Programming10TCS Confidential

Java I/O MethodsCommonly Used Methods

InputStreamread(), close()

OutputStreamwrite(), flush(), close()

Session 3 – B: I/O System Java Programming11TCS Confidential

Selecting Stream ClassFor best performance, use the most specific stream class possible

For file read/write use FileInputStream/ FileOutputStream

Session 3 – B: I/O System Java Programming12TCS Confidential

Predefined Streams in Javajava.lang.System class

System contains 3 predefined public and static stream variables, in, out, and err.

System.in: is of type InputStreamSystem.out, System.err:

are of type PrintStream

Session 3 – B: I/O System Java Programming13TCS Confidential

Predefined Streams in Java …Used to read-write characters from-to the consoleread() - the basic method

public abstract int read()throws IOException

Session 3 – B: I/O System Java Programming14TCS Confidential

Reading Console InputSystem.in andBufferedReaderBufferedReader’s int read( )method reads a characterread() method performs

‘blocking read’ - waits for data if there is none available

Session 3 – B: I/O System Java Programming15TCS Confidential

Reading Console Input…A single byte is read from the input stream, converted into an integer (0 to 255)-1 is returned on the end of streamreadLine() method reads a line

Session 3 – B: I/O System Java Programming16TCS Confidential

Demo: Reading ConsoleIt reads and displays characters typed by userWhen ‘q’ is typed, the program exits

Session 3 – B: I/O System Java Programming17TCS Confidential

Reading Console Input…System.in is line bufferedNo input is actually passed to the program until ENTER is pressed.This makes readLine()valuable than read() for interactive console input

Session 3 – B: I/O System Java Programming18TCS Confidential

Demo: Read LineProgram reads a line from the console and displays that lineWhen ‘stop’ is entered then program exits

Session 3 – B: I/O System Java Programming19TCS Confidential

Writing Console OutputUse print() and println()methods of class PrintStream.write() method of PrintStreamclass – a character-based alternative to print on console

void write(int byteval) throws IOException

Session 3 – B: I/O System Java Programming20TCS Confidential

Writing Console Output…public class WriteDemo {public static void main

(String args[]){int b; b = ‘A’;System.out.write(b);System.out.write(‘\n’);

}}

Session 3 – B: I/O System Java Programming21TCS Confidential

Writing Console Output ...

print() and println() of System.out are recommended for debugging purposes or for sample programs

Session 3 – B: I/O System Java Programming22TCS Confidential

Reading & Writing FilesFileInputStream and FileOutputStream classesCreate byte streams linked to files

FileInputStream(String fileName)

throws FileNotFoundException

FileOutputStream(String fileName)

throws FileNotFoundException

Session 3 – B: I/O System Java Programming23TCS Confidential

Reading & Writing Files…read()/write() methodsRemember… File should be closed after its use Use close() method

void close() throws IOException

Session 3 – B: I/O System Java Programming24TCS Confidential

Demo: Count BytesThe program counts the total number of bytes coming from a file, or console if no file is specified as a command line argument

Session 3 – B: I/O System Java Programming25TCS Confidential

Demo: Copy FileThe program copies a file to another fileTwo command line arguments are required

Session 3 – B: I/O System Java Programming26TCS Confidential

The File ClassIs a subclass of Object that encapsulates a disk file

It neither operates on streams nor specifies how information is retrieved from or stored in files

Session 3 – B: I/O System Java Programming27TCS Confidential

The File Class …

A file object is used to obtain/ manipulate file permissions, time, date, and directory pathnavigate subdirectory hierarchies

Session 3 – B: I/O System Java Programming28TCS Confidential

The File Class …Constructors to create Fileobjects:

File(String dirPath)File(String dirPath, String fname)File(File dirObj, String fname)

Session 3 – B: I/O System Java Programming29TCS Confidential

Demo: File PropertiesProgram displays properties of a file supplied as first command line argumentIt copies to another file supplied as second command line argumentDeletes a file supplied as third command line argument

Session 3 – B: I/O System Java Programming30TCS Confidential

Demo: FileIOProgram expects two command line argumentsCopies first file contents to second file

Session 3 – B: I/O System Java Programming31TCS Confidential

Filtered I/O StreamsFilterInputStream and FilterOutputStream are streams that modify the information sent through an existing stream

Session 3 – B: I/O System Java Programming32TCS Confidential

Filtered I/O Streams ...BufferedInputStream and BufferedOutputStream allow attaching a memory buffer to the I/O streams

Session 3 – B: I/O System Java Programming33TCS Confidential

Filtered I/O Streams ...The PrintStream class provides all of the formatting capabilities we have been using from System.out

Session 3 – B: I/O System Java Programming34TCS Confidential

ByteArray I/O StreamsByteArrayInputStream,ByteArrayOutputStream are subclasses of InputStreamand OutputStream that support I/O from/to byte array

ByteArrayInputStream(byte array [])

Session 3 – B: I/O System Java Programming35TCS Confidential

SequenceInputStreamBuilds one stream from multiple input streams

Useful when reading from multiple data files is required

SequenceInputStream(InputStreamis1, InputStream is2)

Session 3 – B: I/O System Java Programming36TCS Confidential

Demo: SequenceInputStreamProgram expects two command line arguments

Reads both file contents and prints on the console

Session 3 – B: I/O System Java Programming37TCS Confidential

SummaryThe Java I/O SystemStream TypesThe Byte Stream HierarchyPredefined Streams in JavaThe File ClassByte Stream Hierarchy Classes