File Copy in Java with NIO : File Commands « File Input Output « Java

File Copy in Java with NIO



import java.nio.channels.FileChannel;

class NioBenchmark1 {
  static int size = 60; // MB
  static int tests = 5;

  interface Copier {
    public void copy(File s, File t) throws IOException;

  static class NioCopier implements Copier {
    public void copy(File s, File t) throws IOException {
      FileChannel in = (new FileInputStream(s)).getChannel();
      FileChannel out = (new FileOutputStream(t)).getChannel();
      in.transferTo(0, s.length(), out);

  static class IoCopier implements Copier {
    final int BUFF_SIZE = 5 * 1024 * 1024; // 5MB
    final byte[] buffer = new byte[BUFF_SIZE];

    public void copy(File s, File t) throws IOException {
      InputStream in = new FileInputStream(s);
      FileOutputStream out = new FileOutputStream(t);

      while (true) {
        int count =;
        if (count == -1)
        out.write(buffer, 0, count);

  public static void main(String[] arg) throws IOException {
    Copier io = new IoCopier();
    Copier nio = new NioCopier();
    nio.copy(new File("s"), new File("t"));
    io.copy(new File("s"), new File("t"));



Related examples in the same category

1.Touch: set File Last Modified Time
2.File Copy in Java
3.Counts words in a file, outputs results in sorted form
4.Copying a file using channels and buffers
5.Copy files using Java IO APICopy files using Java IO API
6.Mimic the Unix Grep command
7.Grep tools
8.BGrep: a regular expression search utility, like Unix grep
9.File concatenation
10.Compress files using the Java ZIP API
11.Delete file using Java IO API
12.Undent - remove leading spaces
13.TeePrintStream tees all PrintStream operations into a file, rather like the UNIX tee(1) command
14.Delete a file from within Java, with error handling
15.DirTree - directory lister, like UNIX ls or DOS and VMS dirDirTree - directory lister, like UNIX ls or DOS and VMS dir
16.Program to empty a directory
17.Report on a file's status in Java
18.Simple directory lister
19.Readonly Files
20.List root directoryList root directory
21.Rename a file in Java
22.FNFilter - directory lister using FilenameFilter
23.mkdir examples
24.Program to remove files matching a name in a directory
25.Ls directory lister modified to use FilenameFilterLs directory lister modified to use FilenameFilter
26.Move a File
27.Word Count
28.Diff: text file difference utility.Diff: text file difference utility.
29.Count chars in a File
30.Move File
31.Get file date and time
32.Return readable file size with selected value measure
33.Move a file
34.File Compressor
35.Recursive Delete File
36.Read number of lines from a File
37.Copy and overwrite files