There are several methods a programmer can use to read to files or write files to a specific destination, such as a folder or directory in a system. One of those ways is by using FileChannel and the java.nio.channels library, as shown in the following quick snippet, courtesy of today’s quick tip Java programming tutorial:
import java.io.*; import java.nio.channels.*; public class UnderstandingFileChannels { String sourceFileName = "UnderstandingFileChannels.java"; String destFileName = "CopyOfUnderstandingFileChannels.java"; public static void main(String[] args) { UnderstandingFileChannels understandingFileChannels = new UnderstandingFileChannels(); understandingFileChannels.proceed(); } private void proceed() { try { copyFileUsingFileChannel(new File(sourceFileName),new File(destFileName)); }catch(IOException ioe) { System.out.println("IOException: " + ioe); } } private void copyFileUsingFileChannel(File source, File dest) throws IOException { FileChannel sourceChannel = null; FileChannel destChannel = null; try { sourceChannel = new FileInputStream(source).getChannel(); destChannel = new FileOutputStream(dest).getChannel(); destChannel.transferFrom(sourceChannel, 0, sourceChannel.size()); System.out.println("Copied file " + sourceFileName + " to " + destFileName ); } finally { sourceChannel.close(); destChannel.close(); } } }
If you run this code in your integrated development environment (IDE) or code editor, you will get the following output:
[root@mypc]# java UnderstandingFileChannels Copied file UnderstandingFileChannels.java to CopyOfUnderstandingFileChannels.java