public class CPData {
static public void main( String args[] ) throws Exception {
FileInputStream fin = new FileInputStream(infile)
FileOutputStream fout = new FileOutputStream(outfile );
FileChannelfcin = fin.getChannel();
FileChannel fcout =fout.getChannel();
ByteBufferbuffer = ByteBuffer.allocate( 1024 );
while (true) {
//***重要
buffer.clear();
int r = fcin.read( buffer );if (r==-1) {
break;
}
//***重要
// 重设此缓冲区,将限制设置为当前位置,然后将当前位置设置为0
buffer.flip();fcout.write( buffer); }
}
}
}
flip()方法,该方法将会完成两件事情:
把limit设置为当前的position值
把position设置为0
clear()方法能够把所有的状态变化设置为初始化时的值.