![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java nio
AndersZhuo123
Talk is cheap, show me the code!
展开
-
Java NIO学习8(Selector)
这个很多不是我写的 , 看 java Nio 吧 那本书上关于 selector讲的实在是太好了!!!连网和异步 I/O概述连网是学习异步 I/O 的很好基础,而异步 I/O 对于在 Java 语言中执行任何输入/输出过程的人来说,无疑都是必须具备的知识。NIO 中的连网与 NIO 中的其他任何操作没有什么不同 ― 它依赖通道和缓冲区,而您通常使用InputStream 和 Outp转载 2013-01-23 21:35:33 · 7905 阅读 · 0 评论 -
异步、同步、阻塞、非阻塞
之前面试的时候被问到:异步、同步、阻塞、非阻塞 这几个区别的时候,回答的很果断与武断,结果被面试官反问的一头雾水,最终都不知道自己了解的是同步还是阻塞,其实原来也不是很懂所以网上找了很多很多的资料,有的资料竟然把 阻塞和同步说成的一回事,看的我甚是头疼,不过网上还是有大神的,解释的非常好,如果有 Unix网络编程 这本书的话,看看应该就能明白(等我回学校就去图书馆借一本好好研究原创 2013-04-14 20:34:41 · 1032 阅读 · 0 评论 -
Java NIO学习7(字符集)
根据 Sun 的文档,一个 Charset 是“十六位 Unicode 字符序列与字节序列之间的一个命名的映射”。实际上,一个Charset 允许您以尽可能最具可移植性的方式读写字符序列。Java 语言被定义为基于 Unicode。然而在实际上,许多人编写代码时都假设一个字符在磁盘上或者在网络流中用一个字节表示。这种假设在许多情况下成立,但是并不是在所有情况下都成立,而且随着计算机变得对 Un原创 2013-01-15 21:02:07 · 1248 阅读 · 0 评论 -
Java NIO学习6(文件锁 FileLock)
JAVA NIO 文件锁FileLock文件锁定初看起来可能让人迷惑。它 似乎指的是防止程序或者用户访问特定文件。事实上,文件锁就像常规的 Java 对象锁 ― 它们是 劝告式的(advisory) 锁。它们不阻止任何形式的数据访问,相反,它们通过锁的共享和获取赖允许系统的不同部分相互协调。您可以锁定整个文件或者文件的一部分。如果您获取一个排它锁,那么其他人就不能获得同一个文件原创 2013-01-13 20:44:30 · 8692 阅读 · 1 评论 -
Java NIO学习5(通道Channel)
在新的IO中,通道是一个可以用读取和写入数据的一种形式。通道:Channel1 通道可以用来读取和写入数据,通道类似于之前的输入、输出流,但是程序不会直接操作通道的,所有的内容都是先读到或写入到缓冲区之中,在通过缓冲区读取或者写入的2 通道与传统的流操作不同,传统的流操作分为输入或输出流的,而通道本身是双向操作的,即可以完成输入也可以完成输出。通道都是操作缓冲区完成原创 2013-01-13 16:42:58 · 1388 阅读 · 0 评论 -
Java NIO学习8(Selector 补充版SocketChannel)
SocketChannelpublic abstract class SocketChannel extends AbstractSelectableChannel implements ByteChannel, ScatteringByteChannel, GatheringByteChannel { // This is a partial API listing public s原创 2013-01-27 17:12:16 · 11341 阅读 · 0 评论 -
Java NIO学习2(一个例子引起的故事)
先来个nio的例子,不然直接上技术太空泛了!读和写是 I/O 的基本过程。从一个通道中读取很简单:只需创建一个缓冲区,然后让通道将数据读到这个缓冲区中。写入也相当简单:创建一个缓冲区,用数据填充它,然后让通道用这些数据来执行写入操作。我们将从一个文件中读取一些数据。如果使用原来的 I/O,那么我们只需创建一个FileInputStream 并从它那里读取。而在 NIO 中,情况稍有不同原创 2013-01-13 12:46:34 · 1315 阅读 · 0 评论 -
Java NIO学习4(缓冲区2)
缓冲区分配和包装在能够读和写之前,必须有一个缓冲区。要创建缓冲区,您必须 分配它。我们使用静态方法 allocate() 来分配缓冲区:ByteBuffer buffer = ByteBuffer.allocate( 1024 );allocate() 方法分配一个具有指定大小的底层数组,并将它包装到一个缓冲区对象中 ― 在本例中是一个ByteBuffer。您还可以将一个现有的数组原创 2013-01-13 14:20:34 · 1912 阅读 · 0 评论 -
Java NIO学习1(预习)
因为要做游戏后台开发,所以打算学习一下nio,虽然nio以后再也没有更新过,有点令人失望,但是还是值得去学习的!新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的。NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的、面向块的 I/O。通过定义包含数据的类,以及通过以块的形式处理这些数据,NIO 不用使用本机代码就可以利用低级优化,这是原来的 I/O原创 2013-01-13 10:45:34 · 1318 阅读 · 1 评论 -
Java NIO学习8(Selector 补充版ServerSocketChannel)
大部分是javanio书上的内容 我来整理一番,外加一些解释,着色!ServerSocketChannel让我们从最简单的ServerSocketChannel来开始对socket通道类的讨论ServerSocketChannel是一个基于通道的socket监听器。它同我们所熟悉的java.net.ServerSocket执行相同的基本任务,不过它增加了通道语义,因此能够在非阻塞模原创 2013-01-27 15:54:06 · 7730 阅读 · 0 评论 -
Java NIO学习8(Selector 补充版DatagramChannel)
DatagramChannel正如SocketChannel对应Socket,ServerSocketChannel对应ServerSocket,每一个DatagramChannel对象也有一个关联的DatagramSocket对象。不过原命名模式在此并未适用:“DatagramSocketChannel”显得有点笨拙,因此采用了简洁的“DatagramChannel”名称。正如SocketC原创 2013-01-27 18:35:44 · 1485 阅读 · 0 评论 -
利用JDK7的NIO2.0进行I/O读写和文件操作监控
最近在学习新的jdk 7提供的NIO 2.0,发现这个东东提供的java.nio.file包里的若干类,大大的方便了文件读写操作,而且编码相当简单,做了很好的封装。它的一个核心类就是Path。下面就是windows系统下新增,删除,拷贝,move文件的简单示例,注意,需要JDK7的编译和运行环境[java] view plaincopyimpor转载 2013-01-27 18:09:44 · 6228 阅读 · 1 评论 -
Java NIO学习3(缓冲区1)
1 什么是缓冲区?Buffer 是一个对象, 它包含一些要写入或者刚读出的数据。 在 NIO 中加入 Buffer 对象,体现了新库与原 I/O 的一个重要区别。在面向流的 I/O 中,您将数据直接写入或者将数据直接读到 Stream 对象中。在 NIO 库中,所有数据都是用缓冲区处理的。在读取数据时,它是直接读到缓冲区中的。在写入数据时,它是写入到缓冲区中的。任何时候访问 NIO 中的数原创 2013-01-13 13:40:21 · 1598 阅读 · 0 评论 -
Java NIO学习8(Selector 补充版1)
很大一部分来自于java nio那不能书上的内容!Java nio的电子版 网上有的是,给个地址:java nio 中文版新的socket通道类可以运行非阻塞模式并且是可选择的。这两个性能可以激活大程序(如网络服务器和中间件组件)巨大的可伸缩性和灵活性。本节中我们会看到,再也没有为每个socket连接使用一个线程的必要了,也避免了管理大量线程所需的上下文交换总开销。借助新的原创 2013-01-27 11:16:15 · 2283 阅读 · 0 评论 -
apache mina框架以及nio学习
好文链接:http://blog.chinaunix.net/space.php?uid=21547257&do=blog&id=98015好文链接:http://lcllcl987.iteye.com/blog/70703转载 2013-08-01 00:28:32 · 1334 阅读 · 0 评论