FileChannel的用法

来源:互联网 发布:自动排料软件 编辑:程序博客网 时间:2024/06/05 06:46
package com.itbuluoge.nio;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;public class GetChannel {/** * @param args * @throws Exception  */public static void main(String[] args) throws Exception {/*通过通道写入文件*/FileChannel fc=new FileOutputStream("data.txt").getChannel();fc.write(ByteBuffer.wrap("123456789".getBytes()));fc.close();/*读出文件*/fc=new FileInputStream("data.txt").getChannel();ByteBuffer buff=ByteBuffer.allocate(9);fc.read(buff);buff.flip();while(buff.hasRemaining()){System.out.print((char)buff.get());}}}



输出



这里有几个注意的点

第一,FileChannel类似与FileReader一样。

第二,FileChannel.read(ByteBuffer),将会读入一个ByteBuffer大小的数据块。

第三,在读取ByteBuffer的时候,需要设置ByteBuffer为读状态,也就是调用buff.flip();否则会无法读出数据。

0 0