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()方法能够把所有的状态变化设置为初始化时的值.
本文提供了一个使用Java进行文件读写的示例程序,通过FileChannel和ByteBuffer实现了从输入文件到输出文件的数据复制过程,展示了clear()和flip()方法的作用。
1063

被折叠的 条评论
为什么被折叠?



