最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA-4NIO之Channel之間的數(shù)據(jù)傳輸方法

 更新時(shí)間:2017年06月12日 11:00:24   投稿:jingxian  
下面小編就為大家?guī)硪黄狫AVA-4NIO之Channel之間的數(shù)據(jù)傳輸方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在Java NIO中,如果兩個(gè)通道中有一個(gè)是FileChannel,那你可以直接將數(shù)據(jù)從一個(gè)channel(譯者注:channel中文常譯作通道)傳輸?shù)搅硗庖粋€(gè)channel。

transferFrom():被動(dòng)接收

FileChannel的transferFrom()方法可以將數(shù)據(jù)從源通道傳輸?shù)紽ileChannel中(譯者注:這個(gè)方法在JDK文檔中的解釋為將字節(jié)從給定的可讀取字節(jié)通道傳輸?shù)酱送ǖ赖奈募校?/p>

方法的輸入?yún)?shù)position表示從position處開始向目標(biāo)文件寫入數(shù)據(jù),count表示最多傳輸?shù)淖止?jié)數(shù)。如果源通道的剩余空間小于 count 個(gè)字節(jié),則所傳輸?shù)淖止?jié)數(shù)要小于請(qǐng)求的字節(jié)數(shù)。

此外要注意,在SoketChannel的實(shí)現(xiàn)中,SocketChannel只會(huì)傳輸此刻準(zhǔn)備好的數(shù)據(jù)(可能不足count字節(jié))。因此,SocketChannel可能不會(huì)將請(qǐng)求的所有數(shù)據(jù)(count個(gè)字節(jié))全部傳輸?shù)紽ileChannel中。

transferTo():主動(dòng)發(fā)送

transferTo()方法將數(shù)據(jù)從FileChannel傳輸?shù)狡渌腸hannel中。下面是一個(gè)簡單的例子:

除了調(diào)用方法的FileChannel對(duì)象不一樣外,其他的都一樣。

上面所說的關(guān)于SocketChannel的問題在transferTo()方法中同樣存在。SocketChannel會(huì)一直傳輸數(shù)據(jù)直到目標(biāo)buffer被填滿。

例子:

@Test
  public void test2() {
    RandomAccessFile fromFile = new RandomAccessFile("fromFile.txt", "rw");
    FileChannel fromChannel = fromFile.getChannel();
    RandomAccessFile toFile = new RandomAccessFile("toFile.txt", "rw");
    FileChannel toChannel = toFile.getChannel();
    long position = 0;
    long count = fromChannel.size();

    //從from 讀到 本通道;注意socketfrom只會(huì)發(fā)送已經(jīng)準(zhǔn)備好的,不會(huì)發(fā)送count個(gè)
    toChannel.transferFrom(fromChannel,position, count);
    //將本通道 寫到 to;注意sockedfrom會(huì)一直發(fā)送,直到to被填滿
    fromChannel.transferTo(position, count, toChannel);
  }

以上這篇JAVA-4NIO之Channel之間的數(shù)據(jù)傳輸方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

绵阳市| 应用必备| 肇东市| 新营市| 永泰县| 长乐市| 樟树市| 梁平县| 满城县| 临泽县| 芷江| 公安县| 雅江县| 四子王旗| 山阴县| 台北市| 四川省| 夏河县| 寿光市| 故城县| 兴国县| 公主岭市| 都江堰市| 海淀区| 通许县| 年辖:市辖区| 法库县| 苍梧县| 黔江区| 昌乐县| 新野县| 常州市| 平遥县| 广德县| 都兰县| 涞水县| 临潭县| 靖安县| 绿春县| 建瓯市| 顺义区|