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

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

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

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

transferFrom():被動接收

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

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

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

transferTo():主動發(fā)送

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

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

上面所說的關(guān)于SocketChannel的問題在transferTo()方法中同樣存在。SocketChannel會一直傳輸數(shù)據(jù)直到目標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只會發(fā)送已經(jīng)準備好的,不會發(fā)送count個
    toChannel.transferFrom(fromChannel,position, count);
    //將本通道 寫到 to;注意sockedfrom會一直發(fā)送,直到to被填滿
    fromChannel.transferTo(position, count, toChannel);
  }

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

相關(guān)文章

  • redis統(tǒng)計APP在線人數(shù)的實例

    redis統(tǒng)計APP在線人數(shù)的實例

    這篇文章主要介紹了redis統(tǒng)計APP在線人數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Java中IO流的BufferedOutputStream和FileOutputStream對比

    Java中IO流的BufferedOutputStream和FileOutputStream對比

    這篇文章主要介紹了Java中IO流的BufferedOutputStream和FileOutputStream對比,不帶緩沖的操作,每讀一個字節(jié)就要寫入一個字節(jié),由于涉及磁盤的IO操作相比內(nèi)存的操作要慢很多,所以在讀寫的字節(jié)比較少的情況下,效率比較低,需要的朋友可以參考下
    2023-07-07
  • java jdbc連接mysql數(shù)據(jù)庫實現(xiàn)增刪改查操作

    java jdbc連接mysql數(shù)據(jù)庫實現(xiàn)增刪改查操作

    這篇文章主要為大家詳細介紹了java jdbc連接mysql數(shù)據(jù)庫實現(xiàn)增刪改查操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • SpringBoot中的ExpiringMap代碼實例

    SpringBoot中的ExpiringMap代碼實例

    這篇文章主要介紹了SpringBoot中的ExpiringMap代碼實例,ExpiringMap是一個可以設(shè)置過期策略、可變條目過期、延遲條目加載和過期偵聽器的線程安全存儲容器,需要的朋友可以參考下
    2023-08-08
  • Gateway如何實現(xiàn)全局跨域

    Gateway如何實現(xiàn)全局跨域

    這篇文章主要介紹了Gateway如何實現(xiàn)全局跨域問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java 重寫時應(yīng)當遵守的 11 條規(guī)則

    Java 重寫時應(yīng)當遵守的 11 條規(guī)則

    這篇文章主要介紹了Java 重寫時應(yīng)當遵守的 11 條規(guī)則,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • spring mvc4的日期/數(shù)字格式化、枚舉轉(zhuǎn)換示例

    spring mvc4的日期/數(shù)字格式化、枚舉轉(zhuǎn)換示例

    本篇文章主要介紹了spring mvc4的日期/數(shù)字格式化、枚舉轉(zhuǎn)換示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • 在Java的Hibernate框架中對數(shù)據(jù)庫數(shù)據(jù)進行查詢操作

    在Java的Hibernate框架中對數(shù)據(jù)庫數(shù)據(jù)進行查詢操作

    這篇文章主要介紹了Java的Hibernate框架中對數(shù)據(jù)庫數(shù)據(jù)進行查詢操作的方法,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • SpringBoot簡單實現(xiàn)文件上傳

    SpringBoot簡單實現(xiàn)文件上傳

    這篇文章主要介紹了SpringBoot簡單實現(xiàn)文件上傳,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-09-09
  • Mybatis Plus框架項目落地實踐分析總結(jié)

    Mybatis Plus框架項目落地實踐分析總結(jié)

    這篇文章主要為大家介紹了Mybatis Plus框架項目落地實踐分析總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論

和林格尔县| 兴仁县| 洞口县| 九寨沟县| 绥芬河市| 广元市| 鄂温| 如东县| 商丘市| 建水县| 泾阳县| 靖边县| 漯河市| 万载县| 洪江市| 社旗县| 托里县| 灵武市| 三亚市| 滨州市| 杨浦区| 永平县| 广灵县| 南溪县| 石首市| 彭泽县| 青龙| 肥西县| 定州市| 梓潼县| 绥宁县| 莎车县| 定陶县| 岗巴县| 吉安县| 黑龙江省| 陇西县| 仪征市| 竹山县| 时尚| 越西县|