Skip to content
Related Articles

Related Articles

Different Ways to Copy Content From One File to Another File in Java

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 26 Oct, 2020

In Java, we can copy the contents of one file to another file. This can be done by the FileInputStream and FileOutputStream classes.

FileInputStream Class

It is a byte input stream class which helps in reading the bytes from a file. It provides different methods to read the data from a file.

FileInputStream fin = new FileInputStream(filename);

This creates a FileInputStream object fin given a filename to it from where it will copy the content or do read operation.

Methods used:

1. read(): This method is used to read a byte of data. It returns that byte as an integer value or return -1 if the end of file is reached.

2. close(): This method is used to close the FileInputStream.

FileOutputStream Class

It is a byte output stream class which helps in writing the bytes to a file. It provides different functions to write the data to a file.

FileOutputStream fout = new FileOutputStream(filename);

This creates a FileOutputStream object fout given a filename to which it will write the read content.

Methods used:

1. write(): This method is used to write a byte of data to the FileOutputStream.

2. close(): This method is used to close the FileInputStream.

File Class

File f = new File(filename);

This creates an File object named f, given a string object which is the file name or location path of that file which is to be accessed.

Note: If the filename given here does not exist, then the File class will create a new file of that name.  

Example:

Java




// Java program to copy content from
// one file to another
  
import java.io.*;
import java.util.*;
  
public class CopyFromFileaToFileb {
    
    public static void copyContent(File a, File b)
        throws Exception
    {
        FileInputStream in = new FileInputStream(a);
        FileOutputStream out = new FileOutputStream(b);
  
        try {
  
            int n;
  
            // read() function to read the
            // byte of data
            while ((n = in.read()) != -1) {
                // write() function to write
                // the byte of data
                out.write(n);
            }
        }
        finally {
            if (in != null) {
  
                // close() function to close the
                // stream
                in.close();
            }
            // close() function to close
            // the stream
            if (out != null) {
                out.close();
            }
        }
        System.out.println("File Copied");
    }
  
    public static void main(String[] args) throws Exception
    {
        Scanner sc = new Scanner(System.in);
  
        // get the source file name
        System.out.println(
            "Enter the source filename from where you have to read/copy :");
        String a = sc.nextLine();
  
        // source file
        File x = new File(a);
  
        // get the destination file name
        System.out.println(
            "Enter the destination filename where you have to write/paste :");
        String b = sc.nextLine();
  
        // destination file
        File y = new File(b);
  
        // method called to copy the
        // contents from x to y
        copyContent(x, y);
    }
}

Output

Enter the source filename from where you have to read/copy :
sourcefile.txt
Enter the destination filename where you have to write/paste :
destinationfile.txt
File Copied

 Source File 

Source File

Destination File 

Destination File


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!