Tuesday, September 13, 2016

Java - Files and I/O

Important: Use the comment section below for questions. Use the format {your fullname}: {question}
               
The java.io package contains nearly every class you might ever need to perform input and output (I/O) in Java. All these streams represent an input source and an output destination. The stream in the java.io package supports many data such as primitives, Object, localized characters, etc.

Stream

InPutStream: The InputStream is used to read data from a source.
OutPutStream: the OutputStream is used for writing data to a destination.

A stream can be defined as a sequence of data. there are two kinds of Streams




Java I/O Streams



Java provides strong but flexible support for I/O related to Files and networks but this tutorial covers very basic functionality related to streams and I/O. We would see most commonly used example one by one:

Byte Streams

Java byte streams are used to perform input and output of 8-bit bytes (for reference check the table of 8-bit characters). Though there are many classes related to byte streams but the most frequently used classes are , FileInputStream and FileOutputStream. Following is an example which makes use of these two classes to copy an input file into an output file:

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();
         }
      }
   }
}
Now let's have a file input.txt with the following content:
This is test for copy file.
As a next step, compile above program and execute it, which will result in creating output.txt file with the same content as we have in input.txt. 

Dissecting the Program
What the program does is just to copy the content of file input.txt and write it down to output.txt.

CHECK YOURSELF
What would be written to file output.txt if we run these statements individually?

  1. out.write(078);
  2. out.write(079);
  3. out.write(095);
  4. out.write(080);
  5. out.write(065);
  6. out.write(073);
  7. out.write(078);
  8. out.write(095);
  9. out.write(078);
  10. out.write(079);
  11. out.write(095);
  12. out.write(071);
  13. out.write(065);
  14. out.write(073);
  15. out.write(078);



No comments:

Post a Comment