SlideShare a Scribd company logo
3
Most read
4
Most read
9
Most read
Understanding java streams
 Understand the stream
 Know the difference between byte and
  character streams
 Know Java’s byte stream classes
 Know Java’s character stream classes
 Know the predefined streams
 Use byte streams
 Use byte streams for file I/O
 Read and write binary data
 Use character streams
 Use character streams for file I/O
 Object Serialization
 Object Deserialization
A stream is an abstract representation of an input or output device that is a source of,
or destination for, data. You can write data to a stream and read data from a stream.
You can visualize a stream as a sequence of bytes that flows into or out of your
program

Java programs perform I/O through streams.

A stream is an abstraction that either produces or consumes information. A stream is
 linked to a physical device by the Java I/O system.
All streams behave in the same manner, even if the actual physical devices they are
linked to differ.

Thus, the same I/O classes and methods can be applied to any type of device.
For example, the same methods that you use to write to the console can also be used
to write to a disk file. Java implements streams within class hierarchies defined in the
java.io package.
Modern versions of Java define two types of Streams: byte and
character.
Byte streams provide a convenient means for handling input and
output of bytes.
Byte streams are used, for example, when reading or writing
binary data. They are especially helpful when working with files.
Character streams are designed for handling the input and
output of characters.
Character streams use Unicode and, therefore, can be
internationalized. Also, in some cases, character streams are
 more efficient than byte streams.
At the lowest level, all I/O is still byte-oriented. The character-based
streams simply provide a convenient and efficient means for handling
characters.
Byte streams are defined by using two class hierarchies.
At the top of these are two abstract classes:
InputStream and OutputStream.
InputStream defines the characteristics common to byte
input streams and OutputStream describes the behavior of
byte output streams.
From InputStream and OutputStream are created several
concrete subclasses that offer varying functionality and
handle the details of reading and writing to various devices,
such as disk files.
Character streams are defined by using two class
hierarchies topped by these two abstract classes:
  Reader and Writer.
Reader is used for input, and Writer is used for
output.

Concrete classes derived from Reader and Writer
operate on Unicode character streams.

From Reader and Writer are derived several
concrete subclasses that handle various I/O
situations. In general, the character-based classes
parallel the byte-based classes.
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.
Among other things, it contains three predefined stream variables,
called in, out, and err.

These fields are declared as public and static within System.
This means that they 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
by default the keyboard.
System.err refers to the standard error stream, which is also the
console by default. However, these streams can be redirected to
any compatible I/O device.
   BufferedInputStream        InputStream
   BufferedOutputStream       ObjectInputStream
   ByteArrayInputStream       ObjectOutputStream
   ByteArrayOutputStream      OutputStream
   DataInputStream            PipedInputStream
   DataOutputStream           PipedOutputStream
   FileInputStream            PrintStream
   FileOutputStream           PushbackInputStream
   FilterInputStream          RandomAccessFile
   FilterOutputStream         SequenceInputStream
   BufferedReader         LineNumberReader
   BufferedWriter         OutputStreamWriter
   CharArrayReader        PipedReader
   CharArrayWriter        PipedWriter
   FileReader             PrintWriter
   FileWriter             PushbackReader
   FilterReader           Reader
   FilterWriter           StringReader
   InputStreamReader      StringWriter
import java.io.*;
class ReadBytes {
       public static void main(String args[]) throws
  Exception {
              byte data[] = new byte[10];
              System.out.println("Enter some characters.");
              System.in.read(data);
              System.out.print("You entered: ");
              for(int i=0; i < data.length; i++)
                     System.out.print((char) data[i]);
                     }
              }
class WriteDemo {
       public static void main(String args[]) {
              int b;
              b = 'X';
              System.out.write(b);
              System.out.write('n');
              }
  }
import java.io.*;
class ShowFile {
         public static void main(String args[])
         throws IOException {
                  int i;
                  FileInputStream fin = new FileInputStream(args[0]);


                 do {
                 i = fin.read();
                 if(i != -1) System.out.print((char) i);
                 } while(i != -1);

                 fin.close();
                 }
  }
import java.io.*;
class CopyFile {
         public static void main(String args[]) throws Exception {
         int i;
         FileInputStream fin = new FileInputStream(args[0]);
         FileOutputStream fout = new FileOutputStream(args[1]);

        do {
                 i = fin.read();
                 if(i != -1) fout.write(i);
        } while(i != -1);
        fin.close();
        fout.close();
        }
}
import java.io.*;
class RWData {
      public static void main(String args[]) throws Exception {
      DataOutputStream dataOut = new DataOutputStream(new
FileOutputStream("testdata"));
      int i = 10;
      double d = 1023.56;
      boolean b = true;
      System.out.println("Writing " + i); dataOut.writeInt(i);
      System.out.println("Writing " + d); dataOut.writeDouble(d);
      System.out.println("Writing " + b); dataOut.writeBoolean(b);
      System.out.println("Writing " + 12.2 * 7.4); dataOut.writeDouble(12.2 * 7.4);
      dataOut.close();
      System.out.println();
      DataInputStream dataIn = new DataInputStream(new FileInputStream("testdata"));
      i = dataIn.readInt(); System.out.println("Reading " + i);
      d = dataIn.readDouble(); System.out.println("Reading " + d);
      b = dataIn.readBoolean(); System.out.println("Reading " + b);
      d = dataIn.readDouble(); System.out.println("Reading " + d);
      dataIn.close();
      }
}
import java.io.*;
class CompFiles {
         public static void main(String args[])throws Exception {
         int i=0, j=0;
         FileInputStream f1 = new FileInputStream(args[0]);

        FileInputStream f2 = new FileInputStream(args[1]);
        do {
        i = f1.read();
        j = f2.read();
                 if(i != j) break;
        } while(i != -1 && j != -1);

        if(i != j)
                 System.out.println("Files differ.");
        else
                 System.out.println("Files are the same.");
        f1.close();
        f2.close();
        }
}
import java.io.*;
class ReadChars {

public static void main(String args[]) throws Exception {
char c;
BufferedReader br = new BufferedReader(
                   new InputStreamReader(System.in));
System.out.println("Enter characters, period to quit.");

do {
c = (char) br.read();
System.out.println(c);
} while(c != '.');
}
}
import java.io.*;
Create BufferedReader
class ReadLines {
public static void main(String args[]) Throws Exception {
BufferedReader br = new BufferedReader(new
                         InputStreamReader(System.in));
String str;
System.out.println("Enter lines of text.");
System.out.println("Enter 'stop' to quit.");
do {
str = br.readLine();
System.out.println(str);
} while(!str.equals("stop"));
}
}
import java.io.*;
public class PrintWriterDemo {
public static void main(String args[]) {
PrintWriter pw = new PrintWriter(System.out, true);
int i = 10;
double d = 123.65;
pw.println("Using a PrintWriter.");
pw.println(i);
pw.println(d);
pw.println(i + " + " + d + " is " + (i+d));
}
}
import java.io.*;
class KtoD {
public static void main(String args[]) throws Exception {
String str;
FileWriter fw = new FileWriter("test.txt");
BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
System.out.println("Enter text ('stop' to quit).");
do {
System.out.print(": "); str = br.readLine();
if(str.compareTo("stop") == 0) break;
str = str + "rn"; // add newline
fw.write(str);
} while(str.compareTo("stop") != 0);
fw.close();
}
}
import java.io.*;

class DtoS {

public static void main(String args[]) throws Exception {

FileReader fr = new FileReader("test.txt");

BufferedReader br = new BufferedReader(fr);

String s;

while((s = br.readLine()) != null) {

System.out.println(s);

}

fr.close();

}

}
class MyClass implements Serializable {
         double id;
         String name;
         String course;


    public MyClass(double i, String n, String c) {
    id=i; name=n;course=c;
    }
    public String toString() {
    return “ID: " + id + “nNAME: " + name + “nCOURSE: "+ course;
    }
}
import java.io.*;
    public class SerializationDemo {
         public static void main(String args[]) throws Exception{
// Object serialization
      MyClass object1 = new MyClass(2342, “Shahjahan”, “Java”);
    System.out.println("object1: " + object1);
FileOutputStream fos = new FileOutputStream("serial");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(object1);
oos.flush();
oos.close();
}
// Object deserialization
MyClass object2;
FileInputStream fis = new FileInputStream("serial");
ObjectInputStream ois = new ObjectInputStream(fis);
object2 = (MyClass)ois.readObject();
ois.close();
System.out.println("object2: " + object2);
}
}
import java.util.zip.*;

import java.io.*;

public class GZIPcompress {

public static void main(String[] args)throws IOException {

BufferedReader in = new BufferedReader( new FileReader(args[0]));

BufferedOutputStream out = new BufferedOutputStream( new GZIPOutputStream(

new FileOutputStream("test.gz")));

int c; while((c = in.read()) != -1) out.write(c);

in.close(); out.close();

BufferedReader in2 = new BufferedReader( new InputStreamReader(new

    GZIPInputStream( new FileInputStream("test.gz"))));

String s; while((s = in2.readLine()) != null) System.out.println(s);

}

}

More Related Content

PDF
Java Course 8: I/O, Files and Streams
PPTX
Java string handling
DOCX
Java collections notes
PDF
java.io - streams and files
PPTX
Java exception handling
PPT
Generics in java
PDF
Java - File Input Output Concepts
PPS
String and string buffer
Java Course 8: I/O, Files and Streams
Java string handling
Java collections notes
java.io - streams and files
Java exception handling
Generics in java
Java - File Input Output Concepts
String and string buffer

What's hot (20)

PDF
Java I/o streams
PPT
Java collections concept
PDF
Collections in Java Notes
PPTX
Type casting in java
PPTX
String, string builder, string buffer
PPTX
L21 io streams
PPTX
Two-dimensional array in java
PPTX
I/O Streams
PDF
PDF
Java IO
PDF
itft-Decision making and branching in java
PDF
Collections In Java
PPTX
Packages in java
PPT
Exception Handling in JAVA
PPTX
File handling
PDF
Java variable types
PPTX
JAVA AWT
PDF
Generics
Java I/o streams
Java collections concept
Collections in Java Notes
Type casting in java
String, string builder, string buffer
L21 io streams
Two-dimensional array in java
I/O Streams
Java IO
itft-Decision making and branching in java
Collections In Java
Packages in java
Exception Handling in JAVA
File handling
Java variable types
JAVA AWT
Generics
Ad

Viewers also liked (20)

PPTX
Java Input Output (java.io.*)
PPT
Java Input Output and File Handling
PPT
Byte stream classes.49
PDF
PPT
9. Input Output in java
PPTX
Handling I/O in Java
PPS
Introduction to class in java
PPT
Java tutorial PPT
PDF
5java Io
PPTX
Java I/O and Object Serialization
PPTX
Java8 javatime-api
ODP
Java8
PDF
Java 8 Lambda Built-in Functional Interfaces
PDF
Streams in Java 8
PDF
Java 8 Date and Time API
PPT
X$Tables And Sga Scanner, DOAG2009
PPT
Character stream classes .52
PPT
Inner classes9 cm604.28
DOCX
Nested classes in java
PPTX
Buffer and scanner
Java Input Output (java.io.*)
Java Input Output and File Handling
Byte stream classes.49
9. Input Output in java
Handling I/O in Java
Introduction to class in java
Java tutorial PPT
5java Io
Java I/O and Object Serialization
Java8 javatime-api
Java8
Java 8 Lambda Built-in Functional Interfaces
Streams in Java 8
Java 8 Date and Time API
X$Tables And Sga Scanner, DOAG2009
Character stream classes .52
Inner classes9 cm604.28
Nested classes in java
Buffer and scanner
Ad

Similar to Understanding java streams (20)

PDF
Java Programming - 06 java file io
PDF
Java IO Stream, the introduction to Streams
PDF
11_Str11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.eams.pdf
PPTX
File Input and output.pptx
PDF
PDF
File Handling in Java.pdf
PPTX
Input output files in java
PPTX
Java I/O
PPT
Java căn bản - Chapter12
PPT
Chapter 12 - File Input and Output
PDF
IO Streams, Serialization, de-serialization, autoboxing
PPTX
Chapter 10.3
DOCX
Oodp mod4
PDF
Here is my code for a linefile editor import java.io.BufferedRea.pdf
PDF
import java.io.BufferedReader;import java.io.File;import java.io.pdf
PPT
Jedi Slides Intro2 Chapter12 Advanced Io Streams
DOCX
Unit IV Notes.docx
PPT
Java IO Streams V4
DOCX
Java Programming - 06 java file io
Java IO Stream, the introduction to Streams
11_Str11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.11_Streams.eams.pdf
File Input and output.pptx
File Handling in Java.pdf
Input output files in java
Java I/O
Java căn bản - Chapter12
Chapter 12 - File Input and Output
IO Streams, Serialization, de-serialization, autoboxing
Chapter 10.3
Oodp mod4
Here is my code for a linefile editor import java.io.BufferedRea.pdf
import java.io.BufferedReader;import java.io.File;import java.io.pdf
Jedi Slides Intro2 Chapter12 Advanced Io Streams
Unit IV Notes.docx
Java IO Streams V4

Recently uploaded (20)

PDF
A systematic review of self-coping strategies used by university students to ...
PPTX
master seminar digital applications in india
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PPTX
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Yogi Goddess Pres Conference Studio Updates
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
Lesson notes of climatology university.
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
RMMM.pdf make it easy to upload and study
PPTX
Cell Structure & Organelles in detailed.
PDF
Computing-Curriculum for Schools in Ghana
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
A systematic review of self-coping strategies used by university students to ...
master seminar digital applications in india
Chinmaya Tiranga quiz Grand Finale.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Tissue processing ( HISTOPATHOLOGICAL TECHNIQUE
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Yogi Goddess Pres Conference Studio Updates
O5-L3 Freight Transport Ops (International) V1.pdf
Microbial diseases, their pathogenesis and prophylaxis
VCE English Exam - Section C Student Revision Booklet
Abdominal Access Techniques with Prof. Dr. R K Mishra
Lesson notes of climatology university.
Supply Chain Operations Speaking Notes -ICLT Program
RMMM.pdf make it easy to upload and study
Cell Structure & Organelles in detailed.
Computing-Curriculum for Schools in Ghana
Final Presentation General Medicine 03-08-2024.pptx
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
school management -TNTEU- B.Ed., Semester II Unit 1.pptx

Understanding java streams

  • 2.  Understand the stream  Know the difference between byte and character streams  Know Java’s byte stream classes  Know Java’s character stream classes  Know the predefined streams  Use byte streams  Use byte streams for file I/O  Read and write binary data  Use character streams  Use character streams for file I/O  Object Serialization  Object Deserialization
  • 3. A stream is an abstract representation of an input or output device that is a source of, or destination for, data. You can write data to a stream and read data from a stream. You can visualize a stream as a sequence of bytes that flows into or out of your program Java programs perform I/O through streams. A stream is an abstraction that either produces or consumes information. A stream is linked to a physical device by the Java I/O system. All streams behave in the same manner, even if the actual physical devices they are linked to differ. Thus, the same I/O classes and methods can be applied to any type of device. For example, the same methods that you use to write to the console can also be used to write to a disk file. Java implements streams within class hierarchies defined in the java.io package.
  • 4. Modern versions of Java define two types of Streams: byte and character. Byte streams provide a convenient means for handling input and output of bytes. Byte streams are used, for example, when reading or writing binary data. They are especially helpful when working with files. Character streams are designed for handling the input and output of characters. Character streams use Unicode and, therefore, can be internationalized. Also, in some cases, character streams are more efficient than byte streams. At the lowest level, all I/O is still byte-oriented. The character-based streams simply provide a convenient and efficient means for handling characters.
  • 5. Byte streams are defined by using two class hierarchies. At the top of these are two abstract classes: InputStream and OutputStream. InputStream defines the characteristics common to byte input streams and OutputStream describes the behavior of byte output streams. From InputStream and OutputStream are created several concrete subclasses that offer varying functionality and handle the details of reading and writing to various devices, such as disk files.
  • 6. Character streams are defined by using two class hierarchies topped by these two abstract classes: Reader and Writer. Reader is used for input, and Writer is used for output. Concrete classes derived from Reader and Writer operate on Unicode character streams. From Reader and Writer are derived several concrete subclasses that handle various I/O situations. In general, the character-based classes parallel the byte-based classes.
  • 7. 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. Among other things, it contains three predefined stream variables, called in, out, and err. These fields are declared as public and static within System. This means that they 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 by default the keyboard. System.err refers to the standard error stream, which is also the console by default. However, these streams can be redirected to any compatible I/O device.
  • 8. BufferedInputStream  InputStream  BufferedOutputStream  ObjectInputStream  ByteArrayInputStream  ObjectOutputStream  ByteArrayOutputStream  OutputStream  DataInputStream  PipedInputStream  DataOutputStream  PipedOutputStream  FileInputStream  PrintStream  FileOutputStream  PushbackInputStream  FilterInputStream  RandomAccessFile  FilterOutputStream  SequenceInputStream
  • 9. BufferedReader  LineNumberReader  BufferedWriter  OutputStreamWriter  CharArrayReader  PipedReader  CharArrayWriter  PipedWriter  FileReader  PrintWriter  FileWriter  PushbackReader  FilterReader  Reader  FilterWriter  StringReader  InputStreamReader  StringWriter
  • 10. import java.io.*; class ReadBytes { public static void main(String args[]) throws Exception { byte data[] = new byte[10]; System.out.println("Enter some characters."); System.in.read(data); System.out.print("You entered: "); for(int i=0; i < data.length; i++) System.out.print((char) data[i]); } }
  • 11. class WriteDemo { public static void main(String args[]) { int b; b = 'X'; System.out.write(b); System.out.write('n'); } }
  • 12. import java.io.*; class ShowFile { public static void main(String args[]) throws IOException { int i; FileInputStream fin = new FileInputStream(args[0]); do { i = fin.read(); if(i != -1) System.out.print((char) i); } while(i != -1); fin.close(); } }
  • 13. import java.io.*; class CopyFile { public static void main(String args[]) throws Exception { int i; FileInputStream fin = new FileInputStream(args[0]); FileOutputStream fout = new FileOutputStream(args[1]); do { i = fin.read(); if(i != -1) fout.write(i); } while(i != -1); fin.close(); fout.close(); } }
  • 14. import java.io.*; class RWData { public static void main(String args[]) throws Exception { DataOutputStream dataOut = new DataOutputStream(new FileOutputStream("testdata")); int i = 10; double d = 1023.56; boolean b = true; System.out.println("Writing " + i); dataOut.writeInt(i); System.out.println("Writing " + d); dataOut.writeDouble(d); System.out.println("Writing " + b); dataOut.writeBoolean(b); System.out.println("Writing " + 12.2 * 7.4); dataOut.writeDouble(12.2 * 7.4); dataOut.close(); System.out.println(); DataInputStream dataIn = new DataInputStream(new FileInputStream("testdata")); i = dataIn.readInt(); System.out.println("Reading " + i); d = dataIn.readDouble(); System.out.println("Reading " + d); b = dataIn.readBoolean(); System.out.println("Reading " + b); d = dataIn.readDouble(); System.out.println("Reading " + d); dataIn.close(); } }
  • 15. import java.io.*; class CompFiles { public static void main(String args[])throws Exception { int i=0, j=0; FileInputStream f1 = new FileInputStream(args[0]); FileInputStream f2 = new FileInputStream(args[1]); do { i = f1.read(); j = f2.read(); if(i != j) break; } while(i != -1 && j != -1); if(i != j) System.out.println("Files differ."); else System.out.println("Files are the same."); f1.close(); f2.close(); } }
  • 16. import java.io.*; class ReadChars { public static void main(String args[]) throws Exception { char c; BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Enter characters, period to quit."); do { c = (char) br.read(); System.out.println(c); } while(c != '.'); } }
  • 17. import java.io.*; Create BufferedReader class ReadLines { public static void main(String args[]) Throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; System.out.println("Enter lines of text."); System.out.println("Enter 'stop' to quit."); do { str = br.readLine(); System.out.println(str); } while(!str.equals("stop")); } }
  • 18. import java.io.*; public class PrintWriterDemo { public static void main(String args[]) { PrintWriter pw = new PrintWriter(System.out, true); int i = 10; double d = 123.65; pw.println("Using a PrintWriter."); pw.println(i); pw.println(d); pw.println(i + " + " + d + " is " + (i+d)); } }
  • 19. import java.io.*; class KtoD { public static void main(String args[]) throws Exception { String str; FileWriter fw = new FileWriter("test.txt"); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Enter text ('stop' to quit)."); do { System.out.print(": "); str = br.readLine(); if(str.compareTo("stop") == 0) break; str = str + "rn"; // add newline fw.write(str); } while(str.compareTo("stop") != 0); fw.close(); } }
  • 20. import java.io.*; class DtoS { public static void main(String args[]) throws Exception { FileReader fr = new FileReader("test.txt"); BufferedReader br = new BufferedReader(fr); String s; while((s = br.readLine()) != null) { System.out.println(s); } fr.close(); } }
  • 21. class MyClass implements Serializable { double id; String name; String course; public MyClass(double i, String n, String c) { id=i; name=n;course=c; } public String toString() { return “ID: " + id + “nNAME: " + name + “nCOURSE: "+ course; } }
  • 22. import java.io.*; public class SerializationDemo { public static void main(String args[]) throws Exception{ // Object serialization MyClass object1 = new MyClass(2342, “Shahjahan”, “Java”); System.out.println("object1: " + object1); FileOutputStream fos = new FileOutputStream("serial"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(object1); oos.flush(); oos.close(); }
  • 23. // Object deserialization MyClass object2; FileInputStream fis = new FileInputStream("serial"); ObjectInputStream ois = new ObjectInputStream(fis); object2 = (MyClass)ois.readObject(); ois.close(); System.out.println("object2: " + object2); } }
  • 24. import java.util.zip.*; import java.io.*; public class GZIPcompress { public static void main(String[] args)throws IOException { BufferedReader in = new BufferedReader( new FileReader(args[0])); BufferedOutputStream out = new BufferedOutputStream( new GZIPOutputStream( new FileOutputStream("test.gz"))); int c; while((c = in.read()) != -1) out.write(c); in.close(); out.close(); BufferedReader in2 = new BufferedReader( new InputStreamReader(new GZIPInputStream( new FileInputStream("test.gz")))); String s; while((s = in2.readLine()) != null) System.out.println(s); } }