新I/O
FileChannel 是新I/O中重要的管道,它负责和操作系统中缓冲器和通道相连。可以使用FileOutputStream (out)写出数据,使用FileInputStream (in)读入数据。内存中使用的缓冲器 ByteBuffer (buffer),或者RandomAccessFile
<!--StartFragment -->
在读和写的过程中要特别注意 编码 和解码的 问题:
1. 一般写入采用 系统默认的方式的话,读的时候要提取系统的编码方式后才可能读取正确,如:Charset.forName(System.getProperty("file.encoding")).decode(buffer).
2. 如果写的时候使用的是 ByteBuffer.wrap("some strings".getBytes("UTF-16BE")) 那么,读出时直接使用in.read(buffer);
ByteBuffer 类的使用:它只能保存字节类型的数据,但是却可以转化出各种基本类型的数据,如: buffer.getChar();
如果觉得使用ByteBuffer不是很顺手,不要紧,java提供了很多的视图缓冲器,如:CharBuffer,IntBuffer等等,这些视图缓冲器都可以操作ByteBuffer,方便且加快存取速度。不过字节的存放方式 有两种:高位优先 和 地位优先。一般采用高位优先。
内存映射文件:MappedByteBuffer 可以大大提高大文件的存取速度,它使用到了底层操作系统的文件的映射工具。性能大大提升。
文件加锁:FileLock 。 通过channel 可以对整个文件 或者 文件的部分进行加锁: tryLock() ,lock() 或者 tryLock(long position, long size, boolean shared), lock(long position, long size, boolean shared).
对象序列化的目的:一是,支持RMI(Remote Method Invocation); 二是,实现JavaBeans 序列化。
使用类:ObjectInputStream 和 ObjectOutputStream : out.writeObject(w)或者in.readObject(); 其中w可以是任何的实现了 Serializable 的类的实例。
在序列化的控制中 Transient 关键字 修饰的属性 不会被序列化。
如果不实现Serializable ,而实现Externalizable 可以手工的实现 序列化的功能,如:写出时 可以在writeExternal()方法中写出需要的属性。但是 在读入时,必须要在 readExternal()方法中进行转型各个属性。
当然通过 XML 的方式 也可以实现RMI 的功能。而且更普遍,更通用,不局限于JAVA 。
分享到:
相关推荐
这是一个关于Java I/O的知识点总结,希望大家共同学习,共同进步
### Java I/O总结 #### 一、从`new BufferedReader(new InputStreamReader(conn.getInputStream()))`想到的 在Java编程中,处理输入输出(I/O)是一项常见的任务。这段代码`new BufferedReader(new ...
总结起来,Java I/O类库提供了广泛且灵活的工具,用于处理各种输入和输出需求。开发者可以根据具体需求选择合适的类和装饰器,构建出满足特定场景的输入输出系统。理解并熟练运用这些类和模式对于任何Java开发者来说...
#### 二、Java I/O 示例代码详解 下面我们将对提供的代码片段进行逐段分析。 ##### 2.1 文件读取示例 ```java BufferedReader in = new BufferedReader(new FileReader("F:\\nepalon\\TestIO.java")); String s, ...
Java中的I/O流处理是程序与外部设备交互数据的关键机制,包括从文件、网络、内存等数据源读取数据和向这些目标写入数据。I/O流系统在Java的`java.io`包中被实现,提供了丰富的类和接口来支持各种类型的流操作。 **I...
Java I/O(输入/输出)是Java编程语言中不可或缺的一部分,它允许程序与外部资源进行数据交换,如文件、网络连接、系统...在学习过程中,不断实践和总结,理解不同流类的特性和适用场景,是提升Java I/O技能的关键。
这是一篇关于javaSe的基础班关于IO流的全套总结,希望能对你的基础学习有所帮助。
Java的I/O系统是Java平台的核心特性之一,用于处理数据的输入输出操作。这个系统包括一系列的类和接口,主要用于字节和字符的传输,涵盖了从简单文件操作到复杂的网络通信。在Java中,I/O操作是通过数据流的概念来...
Java I/O系统是Java编程语言中的一个核心组成部分,它提供了处理输入输出操作的类和接口。这个系统的设计目的是为了使得应用程序能够与外部世界交互,包括读取和写入文件、网络数据、标准输入输出流等。在Java中,I/...
总结,MaglevIO是一个致力于提高Java I/O效率和易用性的库,它建立在NIO之上,提供了一种更高效、更简单的I/O操作方式。对于那些需要处理大量并发连接、追求高性能的Java应用来说,MaglevIO是一个值得考虑的工具。...
Java-I/O框架总结,思维导图
#### 二、Java文件I/O基础 在Java中,文件I/O操作主要涉及以下几个类: - **File**:代表文件系统中的文件或目录。 - **FileReader**:用于读取字符文件。 - **BufferedReader**:提供字符输入流的缓冲。 - **...
本文将对Java I/O进行详细的总结,包括基本概念、流的分类、缓冲区、转换流以及高级特性。 首先,理解Java I/O的基础是“流”。在Java中,流是一个数据序列,可以是字节流或字符流,用于读取或写入数据。流分为四大...
有关Java输入输出流的总结有关Java输入输出流的总结有关Java输入输出流的总结
总结起来,通过结合Java的I/O流遍历文件和Android的ListActivity,我们可以实现查找并显示应用程序根目录下所有文件的功能。在实际开发中,还需要考虑权限管理(特别是对于Android 6.0及更高版本),以及对不同设备...
在这个总结中,我们将深入探讨Java I/O的几个关键知识点。 首先,我们要理解I/O的基本概念。I/O,即Input/Output,指的是计算机系统与外部设备之间交换数据的过程。在Java中,I/O操作主要涉及到java.io包中的类和...