Program to demonstrate how to Copy a file from one location to another in Java.
package com.hubberspot.code; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class CopyFile { public static void main(String[] args) { // Create a Scanner object which takes System.in object // this makes us read values from the console Scanner scanner = new Scanner(System.in); // In order to copy a file from one location // to another // We will prompt user to enter path of file // in current location and path // of the location where it wants to copy the file // Prompting user to enter path of current location // of file System.out.println("Enter the path of current location of file : "); // Scanner objects nextLine() reads output from the console // entered by user and stores into the string variable String currentPath = scanner.nextLine().trim(); // Prompting user to enter path of target location of file System.out.println("Enter the path of target location of file : "); String targetLocation = scanner.nextLine().trim(); System.out.println(); // Creating a new file object by passing current file name and // target file name along with the location File currentFile = new File(currentPath); File targetFile = new File(targetLocation); // Creating FileOutputStream and FileInputStream variables FileOutputStream fileOutputStream = null; FileInputStream fileInputStream = null; try { // Wrapping the File objects created above within // FileOutputStream and FileInputStream objects fileOutputStream = new FileOutputStream(currentFile); fileInputStream = new FileInputStream(targetFile); // Creating a buffer of byte for storing contents of file byte[] buffer = new byte[4096]; int read; // looping the file contents on the current location till // it becomes empty while ((read = fileInputStream.read(buffer)) != -1) { // As each loops terminates the target file gets the // contents of current file in the chunks of buffer fileOutputStream.write(buffer, 0, read); } // catch blocks for closing of the streams and catching // IOException } catch(IOException e) { try { e.printStackTrace(); if (fileInputStream != null) { fileInputStream.close(); } if (fileOutputStream != null) { fileOutputStream.flush(); fileOutputStream.close(); } } catch (IOException e1) { e1.printStackTrace(); } } } }
Output of the program :