一、了解Unix网络编程5种I/O模型 1.1、阻塞式I/O模型 阻塞I/O(blocking I/O)模型,进程调用recvfrom,其系统调用直到数据报到达且被拷贝到应用进程的缓冲区中或者发生错误才返回。进程从调用recvfrom开始到它返回的整段时间内是被阻塞的。 1.2、非阻塞式I/O模型 ...
分类:
编程语言 时间:
2017-05-08 10:49:43
阅读次数:
270
Java输入输出流总结 一、介绍 流是数据源或数据目标的输入或输出设备的抽象表示。支持流输入和输出的主要包是java.io,但是也有其他的包,比如java.nio.file。java.io包支持两种类型的流——包含二进制数据的字节流和包含字符数据的字符流。 当写数据到字节流中时,数据会以字节序列的形 ...
分类:
编程语言 时间:
2017-05-08 01:17:59
阅读次数:
264
Java 库的 java.nio 包用 Charset 类统一了对字符集的转换,支付姐建立了两个字节Unicode码元序列与使用本地字符编码方式的字节序列之间的映射,Charset类使用的时由IANA字符集注册中心标准化的字符集名称,为了兼容其他的命名惯例,每个字符集都可以拥有许多别名,可以调用 a... ...
分类:
其他好文 时间:
2017-05-03 22:45:49
阅读次数:
256
本文章来源于我的个人博客: java nio 通道(二) 一,文件通道 文件通道总是堵塞式的,因此不能被置于非堵塞模式。 FileChannel对象是线程安全的。多个进程能够在同一个实例上并发调用方法而不会引起不论什么问题,只是非全部的操作都是多线程的。影响通道位置或者影响文件大小的操作都是单线程的 ...
分类:
编程语言 时间:
2017-05-01 19:03:15
阅读次数:
192
NIO java.nio.MappedByteBuffer 映射字节缓冲区。 @Test public void testFileMapping() { try { RandomAccessFile raf = new RandomAccessFile("d:/k.txt", "rws"); Fil ...
分类:
移动开发 时间:
2017-05-01 12:54:07
阅读次数:
259
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道。例如: 1 Pipe pipe = Pipe.open(); 1 P ...
分类:
编程语言 时间:
2017-04-28 20:31:32
阅读次数:
189
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel: 打开 SocketChannel 下面是SocketChannel的打开方式: 1 SocketChannel socketChannel = SocketChan ...
分类:
编程语言 时间:
2017-04-28 20:27:38
阅读次数:
169
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。 Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详 ...
分类:
编程语言 时间:
2017-04-28 20:26:11
阅读次数:
183
Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。 打开 DatagramChannel 下面是 DatagramChannel 的打开方式: 1 DatagramChannel ch ...
分类:
编程语言 时间:
2017-04-28 20:23:45
阅读次数:
138
Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。 打开FileChannel 在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使 ...
分类:
编程语言 时间:
2017-04-28 20:20:54
阅读次数:
141