Copying file using FileStreams in Java

Course Curriculum

Copying file using FileStreams in Java

Copying file using FileStreams in Java

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 java.io package. So for instance let us include the entire package with statement import java.io.*;

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.

Methods used in the program

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)
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 */

import java.io.*;
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 ((b=fis.read()) != -1)
fos.write(b);

/* 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 */
fis.close();
fos.close();
}
}

(Next Lesson) How to start learning Java