OOPJ http://www.youtube.
com/c/EDULINEFORCSE
STUDENTS
MODULE 3
CHAPTER 2
JAVA INPUT OUTPUT (I/O) &
FILES
Prepared By Mr.EBIN PM, AP, IESCE 1
STREAM
• Java I/O (Input and Output) is used to process the input and
produce the output.
• Java uses the concept of a stream to make I/O operation fast. The
java.io package contains all the classes required for input and
output operations.
• We can perform file handling in Java by Java I/O API.
STREAM
• A stream is a sequence of data. In Java, a stream is composed of
bytes. It's called a stream because it is like a stream of water that
continues to flow.
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 2
Prepared By Mr. EBIN PM, AP, IESCE 1
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
In Java, 3 streams are created for us automatically. All these
streams are attached with the console.
1) System.out : standard output stream
2) System.in : standard input stream
3) System.err : standard error stream
The code to print output and an error message to the console.
System.out.println("simple message");
System.err.println("error message");
The code to get input from console.
int i=System.in.read(); //returns ASCII code of 1st character
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 3
OutputStream vs InputStream
OutputStream
Java application uses an output stream to write data to a
destination; it may be a file, an array, peripheral device or socket.
InputStream
Java application uses an input stream to read data from a source; it
may be a file, an array, peripheral device or socket.
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 4
Prepared By Mr. EBIN PM, AP, IESCE 2
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
The working of Java OutputStream and InputStream
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 5
OutputStream class
• OutputStream class is an abstract class.
• It is the superclass of all classes representing an output stream of
bytes. An output stream accepts output bytes and sends them to
some sink.
Useful methods of OutputStream
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 6
Prepared By Mr. EBIN PM, AP, IESCE 3
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
OutputStream Hierarchy
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 7
InputStream class
InputStream class is an abstract class.
It is the superclass of all classes representing an input stream of
bytes.
Useful methods of InputStream
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 8
Prepared By Mr. EBIN PM, AP, IESCE 4
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
InputStream Hierarchy
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 9
READING CONSOLE INPUT
In Java, there are three different ways for reading input from the
user in the command line environment(console).
1.Using Buffered Reader Class
• This is the Java classical method to take input, Introduced in
JDK1.0.
• This method is used by wrapping the System.in (standard input
stream) in an InputStreamReader which is wrapped in a
BufferedReader, we can read input from the user in the command
line.
• Advantage - The input is buffered for efficient reading
• Drawback - The wrapping code is hard to remember.
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 10
Prepared By Mr. EBIN PM, AP, IESCE 5
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
// Java program to demonstrate BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String[] args) throws IOException
{
//Enter data using BufferReader
BufferedReader reader = new BufferedReader(new
InputStreamReader(System.in));
// Reading data using readLine
String name = reader.readLine();
// Printing the read line
System.out.println(name);
}
}
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 11
2. Using Scanner Class
• This is probably the most preferred method to take input.
• The main purpose of the Scanner class is to parse primitive types
and strings using regular expressions, however it is also can be
used to read input from the user in the command line.
Advantages:
• Convenient methods for parsing primitives (nextInt(), nextFloat(),
…) from the tokenized input.
• Regular expressions can be used to find tokens.
Drawback:
• The reading methods are not synchronized
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 12
Prepared By Mr. EBIN PM, AP, IESCE 6
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
// Java program to demonstrate working of Scanner in Java
import java.util.Scanner;
class GetInputFromUser Input:
{
public static void main(String args[]) HelloStudents
{ 12
// Using Scanner for Getting Input from User 3.4
Output:
Scanner in = new Scanner(System.in);
String s = in.nextLine();
You entered string
System.out.println("You entered string "+s);
HelloStudents
int a = in.nextInt();
You entered integer 12
System.out.println("You entered integer "+a); You entered float 3.4
float b = in.nextFloat();
System.out.println("You entered float "+b);
}
}
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 13
3. Using Console Class
It has been becoming a preferred way for reading user’s input
from the command line.
In addition, it can be used for reading password-like input without
echoing the characters entered by the user; the format string
syntax can also be used (like System.out.printf()).
Advantages:
Reading password without echoing the entered characters.
Reading methods are synchronized.
Format string syntax can be used.
Drawback: Does not work in non-interactive environment (such as
in an IDE).
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 14
Prepared By Mr. EBIN PM, AP, IESCE 7
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
// Java program to demonstrate working of System.console()
// Note that this program does not work on IDEs as
// System.console() may require console
public class Sample
{
public static void main(String[] args)
{
// Using Console to input data from user
String name = System.console().readLine();
System.out.println(name);
}
}
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 15
WRITING CONSOLE OUTPUT
• Console output is most easily accomplished with print() and
println() methods.
• These methods are defined by the class PrintStream which is the
type of object referenced by System.in.
• Because the PrintStream is an output stream derived from the
OutputStream, it also implements the low-level method write().
• Thus, write() can be used to write to the console. The simplest
form of write() defined by the PrintStream is shown below :
void write(int byteval)
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 16
Prepared By Mr. EBIN PM, AP, IESCE 8
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
• Following is a short example that uses write() to output the
character 'X' followed by a newline to the screen:
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 17
PrintWriter CLASS
• Java PrintWriter class is the implementation of Writer class.
• It is used to print the formatted representation of objects to the
text-output stream.
Class declaration
public class PrintWriter extends Writer
Methods of PrintWriter class
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 18
Prepared By Mr. EBIN PM, AP, IESCE 9
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 19
Eg:
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 20
Prepared By Mr. EBIN PM, AP, IESCE 10
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
SERIALIZATION
• Serialization in Java is the process of converting the Java code
Object into a Byte Stream, to transfer the Object Code from one
Java Virtual machine to another and recreate it using the process
of Deserialization.
• Most impressive is that the entire process is JVM independent,
meaning an object can be serialized on one platform and
deserialized on an entirely different platform.
• For serializing the object, we call the writeObject() method of
ObjectOutputStream, and for deserialization we call the
readObject() method of ObjectInputStream class.
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 21
• We must have to implement the Serializable interface for
serializing the object.
Advantages of Java Serialization
• It is mainly used to travel object's state on the network (which is
known as marshaling).
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 22
Prepared By Mr. EBIN PM, AP, IESCE 11
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
ObjectOutputStream class
The ObjectOutputStream class is used to write primitive data
types, and Java objects to an OutputStream.
Only objects that support the java.io.Serializable interface can be
written to streams.
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 23
ObjectInputStream class
• An ObjectInputStream deserializes objects and primitive data
written using an ObjectOutputStream.
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 24
Prepared By Mr. EBIN PM, AP, IESCE 12
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
Example of Java Serialization
• In this example, we are going to
serialize the object of Student
class. The writeObject() method
of ObjectOutputStream class
provides the functionality to
serialize the object. We are saving
the state of the object in the file
named f.txt.
Output
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 25
WORKING WITH FILES
• File handling is an important part of any application.
• Java has several methods for creating, reading, updating, and
deleting files.
• The File class from the java.io package, allows us to work with files.
• To use the File class, create an object of the class, and specify the
filename or directory name:
Example
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 26
Prepared By Mr. EBIN PM, AP, IESCE 13
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
• The File class has many useful methods for creating and getting
information about files. For example:
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 27
Create a File
To create a file in Java, you can use the createNewFile() method.
This method returns a boolean value: true if the file was
successfully created, and false if the file already exists.
Note that the method is enclosed in a try...catch block.
This is necessary because it throws an IOException if an error
occurs (if the file cannot be created for some reason):
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 28
Prepared By Mr. EBIN PM, AP, IESCE 14
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
Example
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 29
Write To a File
In the following example, we use the FileWriter class together with
its write() method to write some text to the file we created in the
example above.
Note that when we are done writing to the file, we should close it
with the close() method:
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 30
Prepared By Mr. EBIN PM, AP, IESCE 15
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
Example
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 31
Read Files
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 32
Prepared By Mr. EBIN PM, AP, IESCE 16
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
Get File Information
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 33
Delete a File
To delete a file in Java, use the delete() method:
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 34
Prepared By Mr. EBIN PM, AP, IESCE 17
OOPJ http://www.youtube.com/c/EDULINEFORCSE
STUDENTS
Delete a Folder
Prepared By Mr.EBIN PM, AP, IESCE EDULINE 35
Prepared By Mr. EBIN PM, AP, IESCE 18