摘要 java 的zero copy多在网络应用程序中使用。Java的libaries在linux和unix中支持zero copy,关键的api是java.nio.channel.FileChannel的transferTo(),transferFrom()方法。我们可以用这两个方法来把bytes ...
分类:
编程语言 时间:
2017-03-14 12:08:52
阅读次数:
360
一、概述 从JDK1.4开始,Java提供了一系列改进的输入/输出处理的新特性,被统称为NIO(即New I/O)。新增了许多用于处理输入输出的类,这些类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写,新增了满足NIO的功能。NIO采用内存映射文件的方式来处理输入输出 ...
分类:
编程语言 时间:
2017-03-13 11:27:54
阅读次数:
309
首先是channel,是一个双向的全双工的通道,可同时读写,而输入输出流都是单工的,要么读要么写。Channel分为两大类,分别是用于网络数据的SelectableChannel和用于文件操作的FileChannel。 注意:在java NIO库中,所有的数据都是用缓冲区处理,常用的是ByteBuf ...
分类:
编程语言 时间:
2017-03-12 19:49:40
阅读次数:
286
研究了在网上能找到的自动识别字符集的办法,有效的就是利用第三方类库jchardet。也有用cpdetector,其实也是利用jchardet。偶然发现jdk的java.nio.charset.CharsetDecoder可以用来识别字符集。 ...
分类:
编程语言 时间:
2017-03-11 13:03:44
阅读次数:
204
博主知识水平有限,只能提供一个个人的狭隘的理解,如果有新人读到这儿,建议看一下其他教程或者API,如果不明白,再来看一下;如果有dalao读到这儿,希望能指出理解中的问题~谢谢 Java提供了用于网络通信的socket和serversocket包,然而实现方式是阻塞式的,同一时间点上只能进行一个连接 ...
分类:
编程语言 时间:
2017-03-10 23:52:16
阅读次数:
420
import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URISyntaxException;import java.nio.charset.Char ...
分类:
Web程序 时间:
2017-03-10 18:20:58
阅读次数:
279
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。 这里有个例子: 打开 ServerSocketChannel 通 ...
分类:
编程语言 时间:
2017-03-10 18:11:46
阅读次数:
175
Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。 分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Chan ...
分类:
编程语言 时间:
2017-03-10 17:48:41
阅读次数:
231
1.1概述——文件锁 文件锁定初看起来可能让人迷惑。它 似乎 指的是防止程序或者用户访问特定文件。事实上,文件锁就像常规的 Java 对象锁 — 它们是 劝告式的(advisory) 锁。它们不阻止任何形式的数据访问,相反,它们通过锁的共享和获取赖允许系统的不同部分相互协调。 您可以锁定整个文件或者 ...
分类:
编程语言 时间:
2017-03-09 19:46:41
阅读次数:
300
缓冲区(Buffer):一个用于特定基本数据类型的容器,由 java.nio 包定义的,所有缓冲区都是 Buffer 抽象类的子类。 Java NIO 中的Buffer 主要用于和NIO中的通道(Channel)进行交互, 数据从通道(Channel)读入缓冲区(Buffer)或者从缓冲区(Buff ...
分类:
编程语言 时间:
2017-03-08 23:07:42
阅读次数:
328