读
首先,分配一个Buffer。从FileChannel中读取的数据将被读到Buffer中。<br><br>然后,调用FileChannel.read()方法。该方法将数据从FileChannel读取到Buffer中。read()方法返回的int值表示了有多少字节被读到了Buffer中。如果返回-1,表示到了文件末尾
写
使用FileChannel.write(buffer)方法向FileChannel写数据,该方法的参数是一个Buffer。FileChannel.write()是在while循环中调用的<br>
方法
transferFrom(ReadableByteChannel src, long position, long count)
FilChannel的transferFrom()方法可以将数据从源通道传输到FileChannel中
position
从position处开始向目标文件写入数据
count
count表示最多传输的字节数。如果源通道的剩余空间小于 count 个字节,则所传输的字节数要小于请求的字节数
transformTo(long position, long count, WritableByteChannel target)
transferTo()方法将数据从FileChannel传输到其他的channel中
position
count
position
position()
获取FileChannel的当前位置
position(long pos)
设置FileChannel的当前位置
truncate(long end)<br>
截取文件时,文件将中end后面的部分将被删除
force(boolean metaData)
将通道里尚未写入磁盘的数据强制写到磁盘上。出于性能方面的考虑,操作系统会将数据缓存在内存中,所以无法保证写入到FileChannel里的数据一定会即时写到磁盘上。要保证这一点,需要调用force()方法。<br><br>force()方法有一个boolean类型的参数,指明是否同时将文件元数据(权限信息等)写到磁盘上。