主要是增加了通道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的数据,也就是存储基本类型和字符串的操作
分享到:
相关推荐
赠送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...
设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理...
赠送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 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...
Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...
java NIO是 java New IO 的简称,在 jdk1.4 里提供的新 api 。 Sun 官方标榜的特性如下: – 为所有的原始类型提供 (Buffer) 缓存支持。 – 字符集编码解码解决方案。 – Channel :一个新的原始 I/O 抽象。 – 支持...
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 ...
设计思想: 每次通过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...
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实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...
Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...
JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并...
新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的。NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的、面向块的 I/O。通过定义包含数据的类,以及通过以块的形式处理这些数据,NIO 不用使用本机代码就...
Java NIO英文高清原版
尚硅谷_NIO_NIO 与 IO 区别 ·02. 尚硅谷_NIO_缓冲区(Buffer)的数据存取 ·03. 尚硅谷_NIO_直接缓冲区与非直接缓冲区 ·04. 尚硅谷_NIO_通道(Channel)的原理与获取 ·05. 尚硅谷_NIO_通道的数据传输与内存映射文件 ...
赠送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
赠送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...