Java NIO系列教程(十一) Pipe

转载自  Java NIO系列教程(十一) Pipe

原文链接     作者:Jakob Jenkov     译者:黄忠       校对:丁一

Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。

这里是Pipe原理的图示:

创建管道

通过Pipe.open()方法打开管道。例如:

1Pipe pipe = Pipe.open();

向管道写数据

要向管道写数据,需要访问sink通道。像这样:

1Pipe.SinkChannel sinkChannel = pipe.sink();

通过调用SinkChannel的write()方法,将数据写入SinkChannel,像这样:

01String newData = "New String to write to file..." + System.currentTimeMillis();
02ByteBuffer buf = ByteBuffer.allocate(48);
03buf.clear();
04buf.put(newData.getBytes());
05 
06buf.flip();
07 
08while(buf.hasRemaining()) {
09    sinkChannel.write(buf);
10}

从管道读取数据

从读取管道的数据,需要访问source通道,像这样:

1Pipe.SourceChannel sourceChannel = pipe.source();

调用source通道的read()方法来读取数据,像这样:

1ByteBuffer buf = ByteBuffer.allocate(48);
2 
3int bytesRead = sourceChannel.read(buf);

read()方法返回的int值会告诉我们多少字节被读进了缓冲区。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置oracle网络连接命令,配置oracle网络环境

向数据库注册实例的方法有静态注册和动态注册两种。对于静态注册来说,我们可以将一列硬编码在listener.ora文件中。动态注册意味着实例在启动时要定位侦听器并注册到侦听器中。动态注册是向侦听器注册一个实例的首选方法,初始化参数LOCAL_LISTENER会告知…

ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)

在上一节(ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行)中提到ASP.NET Core WebApp 必须含有Startup类,在本节中将重点讲解Startup类以及Middleware(中间件)在Startup类中的使用。 Startup Class Startup Class中含有两个重要方法:Con…

oracle中闪回和回滚,oracle闪回操作详解

Oracle的闪回oracle中为什么会有闪回呢!它的作用是什么呢?我们来学习一下闪回吧!闪回和回滚异曲同工之妙。一闪回的介绍(1)在Oracle的操作工程中,会不可避免地出现操作失误或者用户失误,例如不小心删除了一个表等&…

Java NIO系列教程(十) Java NIO DatagramChannel

转载自 Java NIO系列教程(十) Java NIO DatagramChannel 译文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一 Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议&#xff0c…

在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序

前言: 随着ASP.NET Core 1.0的发布,论坛里相关的文章也越来越多,正好有时间在测试环境上搭建 ASP.NET Core的发布环境,把过程中遇到的问题写给大家,以便有用到的朋友需要。 环境: Windows Server 2012 R2 S…

Github Pages + Jekyll 独立博客一小时快速搭建上线指南

只要一小时?! 人生道路上布满了坑,于是有了人生导师。 美丽的地球上布满了坑,于是有了Google Earth。 使用Github Pages搭建独立博客的过程中布满了坑,所以有了这篇指南。 我在自己查找资料搭建的过程中发现了许多大…

Java NIO系列教程(九) ServerSocketChannel

转载自 Java NIO系列教程(九) ServerSocketChannel 译文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一 Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的Server…

ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库。 Entity Framework Core 1.0 也已经发布了,可以适用于 .NET Core 1.0 及ASP.NET Core 1.0 。 EF Core RC2 时,使用的Code First: http://w…

Oracle 分页语句解释,oracle 分页语句

private static final String QUERYPERPAGESQL "select * from (select m.*, rownum rn from (select * from music order by id) m where rownum < ?) where rn > ?";//该sql语句为每页显示的个数public List queryPerPage(int page) {//page为当前处于第几…

Java NIO系列教程(八) SocketChannel

转载自 Java NIO系列教程&#xff08;八&#xff09; SocketChannel 译文链接 作者&#xff1a;Jakob Jenkov 译者&#xff1a;郑玉婷 校对&#xff1a;丁一 Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel&a…

php 正则获取html标签,php正则取嵌套html标签

$s <<nested tag testhtml;$pattern "/("."]*?)\s*>|"."\s]))?)*\s*\/?>|"."|"."".")/";preg_match_all($pattern, $s, $aMatches, PREG_OFFSET_CAPTURE);function getMatchTags($s, $arr) {$sM…

拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc

不久前发布了一篇博文“.NET轻量级RPC框架&#xff1a;Rabbit.Rpc”&#xff0c;当初只实现了非常简单的功能&#xff0c;也罗列了之后的计划&#xff0c;经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性&#xff0c;今天主要介绍下项目近况。 特性一览 Apache License 2.…

oracle应用程序SQL提交方式,Oracle Submit Request - 请求的调用方法: FND_REQUEST.SUBMIT_REQUEST...

FND_REQUEST.SUBMIT_REQUEST 函数是用来提交一个请求的,它返回一个NUMBER值.具体调用如下:result : fnd_request.submit_request(application CHAR, --模快program CHAR, --应用程式description CHAR, --请求说明(可选)start_time CHAR, --RUN 时间(可选)sub_request…

Java NIO系列教程(六) Selector

转载自 Java NIO系列教程&#xff08;六&#xff09; Selector 译文链接 作者&#xff1a;Jakob Jenkov 译者&#xff1a;浪迹v 校对&#xff1a;丁一 Selector&#xff08;选择器&#xff09;是Java NIO中能够检测一到多个NIO通道&#xff0c;并能够知晓通道是否为诸如读写事…

.NET 框架兼容性简介

前言 从.NET框架4.0开始&#xff0c;所有主版本号为4&#xff08;称为“4.x”版本&#xff09;的.NET框架&#xff0c;都会进行就地更新。这就意味着在一段时间内&#xff0c;电脑上安装的只有一个.NET 4.x框架。安装.NET 4.5框架将替换.NET 4.0框架&#xff0c;.NET 4.5.1框架…

php滚动公告源码,好用的滚动公告HTML代码

JsCSS间断和不间断文本滚动代码.noticebox{width:150px;height:25px;line-height:25px;border:#bbb 1px solid;overflow:hidden;}.noticebox ul{margin:0;padding:0}.noticebox li{height:25px;line-height:25px;font-size:12px;text-align:center;list-style-type:none;}第一行…

当当网首页——CSS代码

charset "utf-8"; /* CSS Document *//*首页样式*/ /*右侧随鼠标滚动的广告图片*/ .right{top:50px;right:30px;position:absolute;z-index:3; } .dd_close{width:35px;height:18px;text-align:center;border:solid 1px #999;background-color:#E0E0E0;top:0px;right…

Java NIO系列教程(七) FileChannel

转载自 Java NIO系列教程&#xff08;七&#xff09; FileChannel 译文链接 作者&#xff1a;Jakob Jenkov 译者&#xff1a;周泰 校对&#xff1a;丁一 Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞…

js+php在线截图 jquery fileupload.js,另一种图片上传 jquery.fileupload.js

今天遇到另外一种上传图片方法用jquery.fileupload.js一个文件类型的元素$("#fileupload").fileupload({datatype:"json",url: "/File/UploadFiles",done: function (e, data) { //上传结束的操作if (data.result[0].result ! "OK") /…

当当网首页——JS代码

$(function($){//打开一个广告窗口window.open(open.html,,top0,left200,width500,height327,scrollbars0,resizable0);//随滚动条滚动的可关闭广告窗口$(window).scroll(function(){var st $(this).scrollTop()50;$("#right").css("top",st);});$("…