The following code snippet show you how to copy a file using the NIO API. The NIO (New IO) API is in the java.nio.*
package. It requires at least Java 1.4 because the API was first included in this version. The JAVA NIO is a block based IO processing, instead of a stream based IO which is the old version IO processing in Java.
package org.kodejava.io;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;
import java.nio.ByteBuffer;
public class CopyFileExample {
public static void main(String[] args) throws Exception {
String source = "medical-report.txt";
String destination = "medical-report-final.txt";
FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(destination);
FileChannel inputChannel = fis.getChannel();
FileChannel outputChannel = fos.getChannel();
// Create a buffer with 1024 size for buffering data
// while copying from source file to destination file.
// To create the buffer here we used a static method
// ByteBuffer.allocate()
ByteBuffer buffer = ByteBuffer.allocate(1024);
// Here we start to read the source file and write it
// to the destination file. We repeat this process
// until the read method of input stream channel return
// nothing (-1).
while (true) {
// Read a block of data and put it in the buffer
int read = inputChannel.read(buffer);
// Did we reach the end of the channel? if yes
// jump out the while-loop
if (read == -1) {
break;
}
// flip the buffer
buffer.flip();
// write to the destination channel and clear the buffer.
outputChannel.write(buffer);
buffer.clear();
}
}
}
Latest posts by Wayan (see all)
- How do I create a string of repeated characters? - September 1, 2023
- How do I convert datetime string with optional part to a date object? - August 28, 2023
- How do I split large excel file into multiple smaller files? - April 15, 2023