import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class CopyFile
{
static public void main( String args[] ) throws Exception {
args=new String[2];
args[0]="hello.txt";
args[1]="world.txt";
if (args.length<2) {
System.err.println( "Usage: java CopyFile infile outfile" );
System.exit( 1 );
}
String infile = args[0];
// System.out.println("0:"+args[0]);
String outfile = args[1];
// System.out.println("1:"+args[1]);
FileInputStream fin = new FileInputStream( infile );
FileOutputStream fout = new FileOutputStream( outfile );
FileChannel fcin = fin.getChannel();
FileChannel fcout = fout.getChannel();
ByteBuffer buffer = ByteBuffer.allocate( 1024 );
while (true) {
buffer.clear();//clear()
方法重设缓冲区,使它可以接受读入的数据。
int r = fcin.read( buffer );
if (r==-1) {
break;
}
buffer.flip();// flip()
方法让缓冲区可以将新读入的数据写入另一个通道。
fcout.write( buffer );
}
}
}