0% found this document useful (0 votes)
119 views12 pages

Streams and Files

The document discusses different types of streams in Java including byte streams, character streams, and standard streams. Byte streams are used for input and output of bytes while character streams are used for input and output of characters. Standard streams include System.in for input, System.out for standard output, and System.err for errors. The FileInputStream and FileOutputStream classes are used to read from and write to files respectively.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
119 views12 pages

Streams and Files

The document discusses different types of streams in Java including byte streams, character streams, and standard streams. Byte streams are used for input and output of bytes while character streams are used for input and output of characters. Standard streams include System.in for input, System.out for standard output, and System.err for errors. The FileInputStream and FileOutputStream classes are used to read from and write to files respectively.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Streams and Files

Stream
A stream can be defined as a
sequence of data. The InputStream is
used to read data from a source and
the OutputStream is used for writing
data to a destination.
Byte Streams
Character Streams
Standard Streams

Byte Streams
Java byte streams are used to
perform input and output of 8-bit
bytes. Though there are many
classes related to byte streams but
the most frequently used classes
are , FileInputStream and
FileOutputStream

import java.io.*;
public class CopyFile
{
public static void main(String args[]) throws IOException
{
FileInputStream in = null;
FileOutputStream out = null; try { in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1)
{
out.write(c);
}
}finally
{
if (in != null)
{
in.close();
}
if (out != null)
{ out.close();
}
}
}
}

Character Streams
Java Byte streams are used to perform input and
output of 8-bit bytes, where as Java Character
streams are used to perform input and output for
16-bit unicode. Though there are many classes
related to character streams but the most
frequently used classes are , FileReader and
FileWriter.. Though internally FileReader uses
FileInputStream and FileWriter uses
FileOutputStream but here major difference is
that FileReader reads two bytes at a time and
FileWriter writes two bytes at a time.

import java.io.*;
public class CopyFile
{
public static void main(String args[]) throws IOException
{
FileReader in = null;
FileWriter out = null;
try
{ in = new FileReader("input.txt");
out = new FileWriter("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}
finally
{
if (in != null)
{
in.close();
}
if (out != null)
{
out.close();
}
}
}
}

Standard Streams
All the programming languages provide support for standard I/O
where user's program can take input from a keyboard and then
produce output on the computer screen. If you are aware if C or
C++ programming languages, then you must be aware of three
standard devices STDIN, STDOUT and STDERR. Similar way Java
provides following three standard streams
Standard Input: This is used to feed the data to user's program
and usually a keyboard is used as standard input stream and
represented as System.in.
Standard Output: This is used to output the data produced by
the user's program and usually a computer screen is used to
standard output stream and represented as System.out.
Standard Error: This is used to output the error data produced
by the user's program and usually a computer screen is used to
standard error stream and represented as System.err.

import java.io.*;
public class ReadConsole {
public static void main(String args[]) throws IOException
{

InputStreamReader cin = null;

try {

cin = new InputStreamReader(System.in);

System.out.println("Enter characters, 'q' to quit.");

char c;

do {

c = (char) cin.read();

System.out.print(c);

} while(c != 'q');

}finally {

if (cin != null) {

cin.close();

}
}
}

Reading and Writing Files:


As described earlier, A stream can be defined as
a sequence of data. The InputStream is used to
read data from a source and the OutputStream
is used for writing data to a destination.
Here is a hierarchy of classes to deal with Input
and Output streams.

FileInputStream:
This stream is used for reading data from the files. Objects can be created
using the keyword new and there are several types of constructors
available.
Following constructor takes a file name as a string to create an input
stream object to read the file.:
InputStream f = new FileInputStream("C:/java/hello");
Following constructor takes a file object to create an input stream object
to read the file. First we create a file object using File() method as follows:
File f = new File("C:/java/hello");
InputStream f = new FileInputStream(f);
Once you have InputStream object in hand, then there is a list of helper
methods which can be used to read to stream or to do other operations on
the stream.
ByteArrayInputStream
DataInputStream

File Output Streams


FileOutputStream is used to create a file and write data into
it. The stream would create a file, if it doesn't already exist,
before opening it for output.
Here are two constructors which can be used to create a
FileOutputStream object.
Following constructor takes a file name as a string to create
an input stream object to write the file:
OutputStream f = new FileOutputStream("C:/java/hello")
Following constructor takes a file object to create an output
stream object to write the file. First, we create a file object
using File() method as follows:
File f = new File("C:/java/hello");
OutputStream f = new FileOutputStream(f);
ByteArrayOutputStream
DataOutputStream

import java.io.*;
public class fileStreamTest{

public static void main(String args[]){


try{
byte bWrite [] = {11,21,3,40,5};
OutputStream os = new FileOutputStream("test.txt");
for(int x=0; x < bWrite.length ; x++){
os.write( bWrite[x] ); // writes the bytes
}
os.close();
InputStream is = new FileInputStream("test.txt");
int size = is.available();

for(int i=0; i< size; i++){

System.out.print((char)is.read() + " ");

is.close();
}catch(IOException e){

System.out.print("Exception");
}
}
}

You might also like