Skip to content
Related Articles

Related Articles

Save Article
Improve Article
Save Article
Like Article

Copying file using FileStreams in Java

  • Difficulty Level : Basic
  • Last Updated : 30 May, 2018

We can copy a file from one location to another using FileInputStream and FileOutputStream classes in Java.
For this we have to import some specific classes of package. So for instance let us include the entire package with statement import*;

The main logic of copying file is to read the file associated to FileInputStream variable and write the read contents into the file associated with FileOutputStream variable.

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

Methods used in the program

  1. int read(); Reads a byte of data. Present in FileInputStream. Other versions of this method : int read(byte[] bytearray) and int read(byte[] bytearray, int offset, int length)
  2. void write(int b) : Writes a byte of data. Present in FileOutputStream. Other versions of this method : void write(byte[] bytearray) and void write(byte[] bytearray, int offset, int length);

/* Program to copy a src file to destination.
   The name of src file and dest file must be
   provided using command line arguments where
   args[0] is the name of source file and
   args[1] is name of destination file */
class src2dest
    public static void main(String args[])
    throws FileNotFoundException,IOException
        /* If file doesnot exist FileInputStream throws
           FileNotFoundException and read() write() throws
           IOException if I/O error occurs */
        FileInputStream fis = new FileInputStream(args[0]);
        /* assuming that the file exists and need not to be
           checked */
        FileOutputStream fos = new FileOutputStream(args[1]);
        int b;
        while  (( != -1)
        /* read() will readonly next int so we used while
           loop here in order to read upto end of file and
           keep writing the read int into dest file */

This article is contributed by Parul Dang. If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes arrow_drop_up
Recommended Articles
Page :