Copying a File Using Channels and Buffers

From Java Example Source Code

Jump to: navigation, search

Contents

[edit] Overview - Copying a File Using Channels and Buffers

This Java example shows how to copy a file using channels and buffers.

[edit] Java Source Code

  • Package: com.bruceeckel
  • File: ChannelCopy.java
package com.bruceeckel;
 
//: c12:ChannelCopy.java
//Copying a file using channels and buffers
//{Args: ChannelCopy.java test.txt}
//{Clean: test.txt}
//From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
//www.BruceEckel.com. See copyright notice in CopyRight.txt.
 
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
 
public class ChannelCopy {
    private static final int BSIZE = 1024;
 
    public static void main(String[] args) throws Exception {
	if (args.length != 2) {
	    System.out.println("arguments: sourcefile destfile");
	    System.exit(1);
	}
	FileChannel in = new FileInputStream(args[0]).getChannel(), out = new FileOutputStream(
		args[1]).getChannel();
	ByteBuffer buffer = ByteBuffer.allocate(BSIZE);
	while (in.read(buffer) != -1) {
	    buffer.flip(); // Prepare for writing
	    out.write(buffer);
	    buffer.clear(); // Prepare for reading
	}
    }
}

[edit] What Result You Can Get

Run the program without parameters, you will get:


arguments: sourcefile destfile

[edit] Required External Library for this Java Example

Need nothing.

http://www.ase2009.com/ online casino 132 http://www.hellzyea.com/health health insurance 8DDD http://www.yourautoinsurancesite.com/ auto insurance quotes 135811 http://www.makemeasammich.com/ auto insurance mcnxu
Personal tools