0% found this document useful (0 votes)
35 views

Input Output - Chapter 4

The document discusses input and output streams in Java, explaining that streams allow data to flow from a source to a destination and the Java IO package contains classes for defining different stream types. It covers character streams, predefined system streams, reading from the console, writing to and reading from text files, and creating and reading directories and files.

Uploaded by

Abdurezak Ahmed
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Input Output - Chapter 4

The document discusses input and output streams in Java, explaining that streams allow data to flow from a source to a destination and the Java IO package contains classes for defining different stream types. It covers character streams, predefined system streams, reading from the console, writing to and reading from text files, and creating and reading directories and files.

Uploaded by

Abdurezak Ahmed
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Ambo University Woliso campus

Department of Computer science


Advanced Programming

Instructor Name: Lencho J

February 23,2022
Chapter 4: Streams and File I/O
• A stream is a sequence of bytes characters that flows from a
source to a destination

• In a program, we read information from an input stream and write


information to an output stream

• A program can manage multiple streams at a time

• The java.io package contains many classes that allow us to define


various streams with specific characteristics
I/o Stream(cont’d…)
• Data stored in a text file are represented in human-readable form.
• Data stored in a binary file are represented in binary form. You cannot
read binary files.
• They are designed to be read by programs.
• For example, Java source programs are stored in text files and can be
read by a text editor, but Java classes are stored in binary files and are
read by the JVM.
• The advantage of binary files is that they are more efficient to process
than text files.
I/o Stream(cont’d…)
Stream classes
• InputStream and OutputStream are designed for byte streams.

• Reader and Writer are designed for character streams.

• The byte stream classes and the character stream classes form
separate hierarchies.

• In general, you should use the character stream classes when


working with characters or strings and use the byte stream classes
when working with bytes or other binary objects.
The Character Streams
• While the byte stream classes provide sufficient functionality to
handle any type of I/O operation, they cannot work directly with
Unicode characters.

• It was necessary to include direct I/O support for characters.

• Character streams are defined by using two class hierarchies.

• At the top are two abstract classes: Reader for reading


characters and Writer for writing characters.
Predefined Streams
• As you know, all Java programs automatically import the java.lang
package.
• This package defines a class called System, which encapsulates
several aspects of the run-time environment.
• System contains three predefined stream variables: in, out, and err.
These fields are declared as public, static, and final within System.
• These variables can be used by any other part of your program and
without reference to a specific System object.
• System.out refers to the standard output stream. By default, this is the
console.
• System.in refers to standard input, which is the keyboard by default.
Reading Console Input
• In Java 1.0, the only way to perform console input was to use a byte stream.
• Using a byte stream to read console input is still acceptable. However, for commercial
applications, the preferred method of reading console input is to use a character
oriented stream.
• In Java, console input is accomplished by reading from System.in.
• To obtain a character-based stream that is attached to the console, wrap System.in in a
BufferedReader object.
• To read a character from a BufferedReader, use read( ) method
• Each time that read( ) is called, it reads a character from the input stream and returns it
as an integer value.
• To read a string from the keyboard, use the version of readLine( ) that is a member of
the BufferedReader class.
Reading Console Input
Reading String from console input
Text files
• Text (.txt) files are the simplest kind of files
• Text files can be used by many different programs
• Formatted text files (such as .doc files) also contain binary
formatting information
• Only programs that “know the secret code” can make sense
of formatted text files
• Compilers, in general, work only with text
Reading and Writing Files
FileWriter
• It creates a Writer that you can use to write to a file
• Creation of a FileWriter is not dependent on the file already
existing.
• FileWriter will create the file before opening it for output, when
you create the object.
• In the case where you attempt to open a read-only file, an
IOException will be thrown.
Methods of File Writer
• Write(char[] ch):
write array of characters to the file
• Write(string s):
used to write string to the file.
• Flush():
to give the guarantee that total data including last character
written properly to the file.
• Close():
used to close the file
Directories in Java
• A directory is a File which can contains a list of other files and directories.
• You use File object to create directories, to list down files available in a
directory.
• There are two useful File utility methods, which can be used to create
directories:
• The mkdir method creates a directory, returning true on success and false
on failure.
• Failure indicates that the path specified in the File object already exists,
or that the directory cannot be created because the entire path does not
exist yet.
• The mkdirs method creates both a directory and all the parents of the
directory.
Reading File
FileReader

• The File Reader class creates a Reader that you can


use to read the contents of a file.

• Its two most commonly used constructors are shown


here:
FileReader(String filePath)
FileReader(File fileObj)
Reading File(cont’d…)

• BufferedReader is a subclass of Reader

• It buffers the character stream from FileReader and


has readLine() method to read an entire line of
characters efficiently
FileReader fr = new FileReader("myFile.txt");
BufferedReader br = new BufferedReader(fr);

You might also like