`
Willam2004
  • 浏览: 88017 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java Nio 分享

    博客分类:
  • Java
阅读更多
最近在学习Java Nio,网上查了一些例子,也到sun的官网看了下,找到一篇关于NIO介绍的文章,由于是英文,自己将它翻译过来了,先记录下进行备案。
    http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/guide/nio/
一些基本概念:
Channel —— 通道
Charset —— 字符集
Buffer  —— 缓存
一、什么是NIO
  NIO APIs 是在JDK1.4 引入的新特性,它大大提高了缓存管理、可伸缩的网络应用程序和文件I/O的性能,增加了字符集设置,正则表达式支持等功能。NIO APIs 为java.io包中的 I/O 操作提供了基础设施。
二、组成部分
  • java.nio package: 缓存,贯穿整个NIO APIs
  • java.nio.channels package: 道和选择器
  • java.nio.charset package: 字符编码
  • java.nio.channels.spi package: 通道的服务提供者类
  • java.nio.charset.spi package:  字符集的服务提供者类
  • 在 java.util.regex包中通过正则表达式模式功能,实现匹配字符序列。
  • java.lang.CharSequence interface 实现了该接口的对象可以通过被当作方法的参数传入。String,StringBuffer和java.nio.CharBuffer类实现了这个接口.
注意:
新的InetSocketAddress和SocketAddress类,严格意义上不是NIO API 的部分,但却用它们。
三、使用Java NIO 改进的类
改进的类 改进点
FileInputStream,FileOutputStream getChannel方法返回FileChannel对象
RandomAccessFilegetChannel方法返回FileChannel对象
InputStreamReader OutputStreamWriter构造函数已经增加了一个流和一个字符设置对象,  以及getEncoding方法已经修改为返回曾使用过的编码名称。      InputStreamReader和OutputStreamWriter类的构造函数已经分别加上存在的CharsetDecoder和CharsetEncoder作为参数
String新加了两个split方法。   又增加了subSequence方法,它是由CharSequence定义,String类已经实现。另外新增的3个方法:mathches,replaceAll,replaceFirst
StringBuffer 增加了subSequence方法,它是由CharSequence 接口定义, StringBuffer 已经实现的
ThreadInterrupt 方法已经通过线程通道I/O阻断方式进行改进。
DatagramSocketreceive和send方法已经更改抛出 java.nio.channels.IllegalBlockingModeException如果socket由一个通道,,而且通道是非阻塞模式。Close方法现在也是关闭Socket的通道,,如果它有一个,而且它新增的方法getChannel也返回当前所使用的通道。
ServerSocketAccept和implAccept方法已修改为抛出java.nio. IllegalBlockingModeException 如果socket 已经有一个通道并且通道是在非阻塞模式下。与DatagramSocket类一样增加了getChannel 方法,修改了close方法。
SocketgetInputStream和getOutputStream方法已经修改为将全部的I/O操作委派给socket的通道,如果它有一个通道。connect方法已经修改为抛出一个 java.nio.IllegalBlockingModeException  如果socket有一个通道并且该通道处于非阻塞模式。与 DatagramSocket类一样,新增了getChannel方法和修改了close方法。
分享到:
评论

相关推荐

    JAVA NIO学习网站

    博主还可能分享了实际示例代码,帮助读者更好地理解和掌握Java NIO。 至于`.classpath`和`.project`文件,它们是Eclipse IDE的工作空间配置文件,`.classpath`定义了项目的类路径,`.project`包含了项目设置。`bin`...

    JavaNIO服务器实例Java开发Java经验技巧共6页

    本资料"JavaNIO服务器实例Java开发Java经验技巧共6页"可能是某个Java开发者或讲师分享的一份关于如何在Java中构建NIO服务器的教程,涵盖了6个关键页面的内容。尽管具体的细节无法在此直接提供,但我们可以根据Java ...

    JavaNio视频下载_百度云盘资源

    4. **博客和技术文章**:许多技术博客和社区(如Stack Overflow、GitHub等)都有丰富的Java NIO教程和技术分享。 通过上述学习资源,你可以更好地掌握Java NIO的核心概念和技术细节,为实际开发工作打下坚实的基础...

    javaNIO.xmind

    自己总结的java中NIO的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者

    java nio实战代码.rar

    #资源达人分享计划# java nio从入门到精通的代码详解 主要结合博文进行学习 详情可配合我的博客进行学习 https://blog.csdn.net/weixin_47872288/article/details/120342049

    Java NIO实例UDP发送接收数据代码分享

    "Java NIO实例UDP发送接收数据代码分享" Java NIO(Non-blocking I/O)是一种异步I/O模型,允许开发者在单个线程中处理多个I/O操作,从而提高程序的性能和可扩展性。在Java NIO中,DatagramChannel是专门用于发送...

    基于Java NIO实现五子棋游戏.zip

    用java写的项目,免费分享给大家,比较适合新手入门学习,欢迎下载使用。用java写的项目,免费分享给大家,比较适合新手入门学习,欢迎下载使用。用java写的项目,免费分享给大家,比较适合新手入门学习,欢迎下载...

    NIO入门pdf分享

    《NIO入门》一书是理解Java NIO(New Input/Output)的重要参考资料,NIO在Java编程中扮演着至关重要的角色,特别是在处理高并发、大数据传输等场景下。本PDF文档将引领读者深入理解这一核心概念。 NIO,全称New ...

    NIO学习-Java源代码分享(含netty)

    在"**NIO学习-Java源代码分享**"这个压缩包中,可能包含了关于NIO的示例代码,包括使用NIO进行文件操作、网络通信的实例,也可能包含Netty或Mina的部分源码,这些都可以作为学习和研究NIO技术的宝贵资源。...

    2021最新-Java NIO视频教程-视频教程网盘链接提取码下载 .txt

    教程内容涵盖:阻塞和非阻塞IO、Channel通道、Buffer缓冲区、Selector选择器、Pipe管道、FileLock文件锁,以及Path、Files、异步FileChannel和Charset字符编码等,并通过一个多人聊天室的综合案例,把所有的NIO知识...

    java资源NIO网络框架 xSocket

    java资源NIO网络框架 xSocket提取方式是百度网盘分享地址

    Java8新特性&Shiro&NIO&Redis分享

    NIO (New IO) 是Java SE 1.4及后续版本提供的新的IO API,可以替代标准的Java IO API。NIO提供了与标准IO不同的IO工作方式。 - **核心组件**: - **Buffer**:数据容器,用于存储数据。 - **Channel**:用于数据...

    基于Java的实例源码-NIO网络框架 xSocket.zip

    Java NIO(New Input/Output)网络框架是Java平台中用于高效处理I/O操作的一种机制。相较于传统的IO模型,NIO具有非阻塞、多路复用的特点,使其在高并发场景下表现优异,尤其适合于开发网络服务,如服务器应用、聊天...

    java的nio的使用示例分享

    Java NIO(New Input/Output)是Java 1.4版本引入的一套全新的I/O API,旨在提升Java程序在处理I/O密集型任务时的性能。NIO与传统的 Blocking I/O 不同,它采用非阻塞模式,允许单线程处理多个通道(channels),...

    Tricks and Tips With NIO Using the Grizzly Framework

    在本次演讲中,我们将分享我们在开发Project Grizzly NIO框架过程中学到的一些技巧和窍门。Project Grizzly是一个利用Java NIO(非阻塞I/O)技术来构建高性能、可扩展服务器的项目。在Java平台实现可扩展的服务器...

    java的NIO管道用法代码分享

    Java的非阻塞I/O(Non-blocking Input/Output, NIO)是Java 1.4引入的一个重要特性,它提供了一种不同于传统阻塞I/O的处理方式,尤其是在高并发和大数据传输场景下表现优越。NIO管道(Pipe)是NIO中用于线程间通信的...

    nio演示代码

    在CSDN博客中,作者wgyscsf分享了一篇文章,详细介绍了NIO的用法。 在NIO模型中,以下几个核心组件是关键: 1. **通道(Channels)**:通道是数据传输的途径,可以将数据从一个地方传输到另一个地方。例如,...

    NIO实例

    虽然具体内容无法在此直接查看,但通常博主会分享如何创建通道、配置缓冲区、使用选择器以及在实际项目中应用NIO的方法。 标签中的"源码"可能意味着博客中会深入到NIO的内部实现,讨论相关类和方法的工作原理,这...

    java技术分享

    ### Java技术分享知识点详解 #### 一、技术讨论 ##### 1.1 OFFHEAP -- 老宋分享 OFFHEAP(非堆内存)是一种不在JVM管理下的内存区域,通常用于存储大量数据,避免频繁的垃圾回收操作,从而提高性能。在Java中,...

Global site tag (gtag.js) - Google Analytics