国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java的NIO管道用法代碼分享

java的NIO管道用法代碼分享

2021-02-28 10:43IT老蔣 Java教程

這篇文章主要介紹了java的NIO管道用法代碼分享,具有一定借鑒價值,需要的朋友可以參考下。

java的nio中的管道,就類似于實際中的管道,有兩端,一段作為輸入,一段作為輸出。也就是說,在創建了一個管道后,既可以對管道進行寫,也可以對管道進行讀,不過這兩種操作要分別在兩端進行。有點類似于隊列的方式。

這里是pipe原理的圖示:

java的NIO管道用法代碼分享

創建管道

通過pipe.open()方法打開管道。例如:

pipe pipe = pipe.open();

 向管道寫數據

要向管道寫數據,需要訪問sink通道。像這樣:

pipe.sinkchannel sinkchannel = pipe.sink();

通過調用sinkchannel的write()方法,將數據寫入sinkchannel,像這樣:

?
1
2
3
4
5
6
7
8
string newdata = "new string to write to file..." + system.currenttimemillis();
bytebuffer buf = bytebuffer.allocate(48);
buf.clear();
buf.put(newdata.getbytes());
buf.flip();
while(buf.hasremaining()) {
    sinkchannel.write(buf);
}

我們在測試例子中給出一個非常簡單的管道操作,先向管道寫入內容,再從管道讀出內容。

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.test.nio;
import java.io.ioexception;
import java.nio.bytebuffer;
import java.nio.channels.pipe;
public class testpipea {
    /**
   * @param args
   * @throws exception
   */
    public static void main(string[] args) throws exception {
        //創建一個管道
        pipe pipe=pipe.open();
        //創建一個寫管道
        pipe.sinkchannel sinkchannel=pipe.sink();
        string newdata="itbuluoge.com says:"+system.currenttimemillis();
        bytebuffer buf=bytebuffer.allocate(48);
        buf.clear();
        buf.put(newdata.getbytes());
        buf.flip();
        /*向管道寫入內容*/
        while(buf.hasremaining())
            {
            sinkchannel.write(buf);
        }
        /*創建一個讀管道*/
        pipe.sourcechannel sourcechannel=pipe.source();
        bytebuffer getbuf=bytebuffer.allocate(48);
        int bytesread=sourcechannel.read(getbuf);
        getbuf.flip();
        /*從管道讀出內容*/
        while(getbuf.hasremaining())
            {
            system.out.print((char)getbuf.get());
        }
    }
}

輸出結果

java的NIO管道用法代碼分享

我們可以看到,已經可以完成我們需要的目標了。注意,我在這個地方編程的時候,出現了一點錯誤,就是我在讀取管道的時候,沒有設置getbuf.flip(),導致無法讀出數據,這個函數非常重要,在完成buffer讀取內容之后,一定要設置一下讀標志,恢復指針到原始位置,才能讀取到全部內容。

以上就是本文關于java的nio管道用法代碼分享的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/itbuluoge/article/details/39552769

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 91精品国产综合久久久久 | 99久久免费精品国产男女性高好 | 色婷婷综合久久久中文字幕 | 国产精品美女久久久久久久网站 | 成人高清网站 | 美女视频一区二区三区 | 黄频免费在线观看 | 日本不卡免费一区二区三区综合久久 | 日本一区二区精品视频 | 欧美日韩国产一区二区三区在线观看 | 欧美a网 | 日韩精品在线观看视频 | 日韩精品久久久久 | 亚洲成人久久久 | 国产成人高清 | 成人在线h | 亚洲精品在线免费看 | 国产伦精品一区二区三区四区视频 | 午夜精品美女久久久久av福利 | 国产在线精品一区 | 在线日本中文字幕 | 日韩中文字幕一区二区 | a级在线免费 | 精品久久久久久久人人人人传媒 | 神马久久精品综合 | 美国理论 | 成人福利视频网 | 欧美日韩国产一区二区三区不卡 | 国产精品尤物在线观看 | 亚洲经典一区 | 成人午夜毛片 | 久久草视频 | 亚洲一区观看 | 欧美国产精品一区 | 深夜精品 | 婷婷国产精品 | 成人在线精品 | 成年人在线看片 | 在线视频不卡一区 | 日韩av一级在线观看 | 午夜av电影 |