1、說明
Channel是一個可以透過它讀取和寫入資料的物件。它可以被視為IO中的流。但與流相比,它有一些不同:
Channel是雙向的,可以讀也可以寫,流是單向的。
Channel可以非同步讀寫。
Channel的讀寫必須通過buffer物件。
2、實例
利用通道和非直接緩衝區完成。
FileInputStream fis=null; //引用 FileOutputStream fout=null; FileChannel channel=null; //通道引用 FileChannel outchannel=null; try { fis = new FileInputStream("sb.jpg"); //源文件 fout = new FileOutputStream("bb.jpg"); //目标文件 channel = fis.getChannel(); //获取连接源文件的通道 outchannel = fout.getChannel(); //获取连接目标文件的通道 //指定缓冲区 非直接缓冲区 ByteBuffer buffer=ByteBuffer.allocate(1024); //创建缓冲区 用来传输数据 while(channel.read(buffer)!=-1) //从连接源文件的管道读取数据到缓冲区 { //将缓冲区反转 buffer.flip(); outchannel.write(buffer); //将缓冲区中的数据写入连接到目标文件的管道 buffer.clear(); //"清空"缓冲区 }
以上是java Channel怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!