Open In App

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

Improve
Improve
Like Article
Like
Save
Share
Report

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



Last Updated : 26 Oct, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads