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

NIO

 
阅读更多
主要是增加了通道FileChannel类,而且通道主要与缓冲器ByteBuffer进行结合处理。旧的IO修改了FileInputStream和FileOutputStream和RamdomAccessFile(字节流操作),还有设置字符的类Charset,还有ByteBuffer可以进行转换通过ascharBuffer、IntBuffer等。
用缓冲器操纵数据:Buffer有数据和可以高效地访问及操作这些数据的四个索引组成,这四个索引是mark、position、limit、capacity      编程思想里的一幅图561页

NIO一个重要的特性:内存映射文件,允许我们创建和修改那些因为太大而不能放入内存的文件。主要是通过MappedBufferReader类来完成操作,这个类继承bytebuffer类。
MapperedByteBuffer out = new RamdomAccessFile("test.dat","rw").getchannel().map(FileChannel.MapMode.READ_WRITE,0,length)   通过getchannel方法得到通道,再通过map方法得到MapperedByteBuffer类,还有必须指定映射文件的初始长度和映射区域长度。使用内存映射操作,效率是最高的。
对映射文件有锁机制,使用FileLock类,有三个方法tryLock(非阻塞),lock(阻塞),release(释放)。这个锁是文件通道上的锁。而且可以对文件的部分加锁,指定范围就好。

javaIO可以进行文件的压缩与解压。使用的类是ZipOutputStream(ZipInputStream)压缩成Zip格式和GZipOutputStream(GZipInputStream)压缩成GZip格式。同时配合两个类校验:CheckedInputStream和CheckedOutputStream
还有Zip文件应用与JAR文件格式。但是JAR没有那么强大。

java对象序列化:将那些实现Serializable接口的对象转化成一个序列字节,并且可以恢复成原来的对象,序列化能自动弥补不同操作系统之间的差异。它运用与语言主要为了支持两种机制:rmi和java beans      要序列化一个对象,先创建OutputStream对象,然后封装在ObjectOutputStream类中,然后通过方法writeObject方法写入硬盘。读的方式正好相反。
当然也可以ByteArrayOutputStream(ByteArrayInputStream)进行操作。

继承Serializable对象,但不想序列化某个属性,可以用transient关键字。
Externalizable和Serializable的区别,前者继承后者,但是有比较大的区别,前者的同时还添加了writeExternal()和readExternal()两个方法,这两个方法会在序列化和反序列化中自动被调用。其次他们的序列话机制有区别:前者它序列化和反序列化的时候会调用默认的构造器,并且在反序列话时readExternal方法没有对类的属性值赋值,那么他反序列化得到的值就为空(最重要的区别)。后者序列化机制:完全以它存诸的二进制为基础来构造,而不调用构造器。

除了使用java序列化之外,还可以用xml来存储和读取数据(可以用于任何平台和语言),可以使用开源的XOM类库来进行操作。
其次还可以用JDK自带的Preferences API 进行持久化操作,他可以自动的存储和读取信息。但是他的操作有限制:只能用于存储不超过8k的数据,也就是存储基本类型和字符串的操作
分享到:
评论

相关推荐

    xnio-nio-3.8.0.Final-API文档-中文版.zip

    赠送jar包:xnio-nio-3.8.0.Final.jar; 赠送原API文档:xnio-nio-3.8.0.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.0.Final-sources.jar; 赠送Maven依赖信息文件:xnio-nio-3.8.0.Final.pom; 包含翻译后的API...

    JAVA NIO 按行读取大文件,支持 GB级别

    设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理...

    httpcore-nio-4.4.6-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.6.jar 赠送原API文档:httpcore-nio-4.4.6-javadoc.jar 赠送源代码:httpcore-nio-4.4.6-sources.jar 包含翻译后的API文档:httpcore-nio-4.4.6-javadoc-API文档-中文(简体)版.zip ...

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    java nio中文版

    java NIO是 java New IO 的简称,在 jdk1.4 里提供的新 api 。 Sun 官方标榜的特性如下: – 为所有的原始类型提供 (Buffer) 缓存支持。 – 字符集编码解码解决方案。 – Channel :一个新的原始 I/O 抽象。 – 支持...

    Java IO, NIO and NIO.2 原版pdf by Friesen

    New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn about concepts such as paths and Direct Memory Access. Chapters 2 through 5 ...

    JAVA NIO 按行读取大文件支持 GB级别-修正版

    设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理。 ...

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    Java IO, NIO and NIO.2(Apress,2015)

    Java I/O, NIO, and NIO.2 is a power-packed book that accelerates your mastery of Java's various I/O APIs. In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes ...

    java nio 包读取超大数据文件

    Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...

    java基于NIO实现Reactor模型源码.zip

    java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...

    新输入输出NIO

    JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并...

    nio入门 IBM教材,pdf格式

    新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的。NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的、面向块的 I/O。通过定义包含数据的类,以及通过以块的形式处理这些数据,NIO 不用使用本机代码就...

    Java NIO英文高清原版

    Java NIO英文高清原版

    尚硅谷Java视频_NIO 视频教程

    尚硅谷_NIO_NIO 与 IO 区别 ·02. 尚硅谷_NIO_缓冲区(Buffer)的数据存取 ·03. 尚硅谷_NIO_直接缓冲区与非直接缓冲区 ·04. 尚硅谷_NIO_通道(Channel)的原理与获取 ·05. 尚硅谷_NIO_通道的数据传输与内存映射文件 ...

    httpcore-nio-4.4.15-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.15.jar 赠送原API文档:httpcore-nio-4.4.15-javadoc.jar 赠送源代码:httpcore-nio-4.4.15-sources.jar 包含翻译后的API文档:httpcore-nio-4.4.15-javadoc-API文档-中文(简体)版....

    java NIO.zip

    java NIO.zip

    xnio-nio-3.8.4.Final-API文档-中文版.zip

    赠送jar包:xnio-nio-3.8.4.Final.jar; 赠送原API文档:xnio-nio-3.8.4.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.4.Final-sources.jar; 赠送Maven依赖信息文件:xnio-nio-3.8.4.Final.pom; 包含翻译后的API...

Global site tag (gtag.js) - Google Analytics