`
yuanqikai
  • 浏览: 1314 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java I/O 总结(二)

    博客分类:
  • java
阅读更多

新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的知识点总结,希望大家共同学习,共同进步

    Java I/O总结

    ### Java I/O总结 #### 一、从`new BufferedReader(new InputStreamReader(conn.getInputStream()))`想到的 在Java编程中,处理输入输出(I/O)是一项常见的任务。这段代码`new BufferedReader(new ...

    java I/O类的使用

    总结起来,Java I/O类库提供了广泛且灵活的工具,用于处理各种输入和输出需求。开发者可以根据具体需求选择合适的类和装饰器,构建出满足特定场景的输入输出系统。理解并熟练运用这些类和模式对于任何Java开发者来说...

    java i/o 实例 编程 学习 教程 复习

    #### 二、Java I/O 示例代码详解 下面我们将对提供的代码片段进行逐段分析。 ##### 2.1 文件读取示例 ```java BufferedReader in = new BufferedReader(new FileReader("F:\\nepalon\\TestIO.java")); String s, ...

    java对I/O流的处理

    Java中的I/O流处理是程序与外部设备交互数据的关键机制,包括从文件、网络、内存等数据源读取数据和向这些目标写入数据。I/O流系统在Java的`java.io`包中被实现,提供了丰富的类和接口来支持各种类型的流操作。 **I...

    java i/0习题

    Java I/O(输入/输出)是Java编程语言中不可或缺的一部分,它允许程序与外部资源进行数据交换,如文件、网络连接、系统...在学习过程中,不断实践和总结,理解不同流类的特性和适用场景,是提升Java I/O技能的关键。

    java I/O流总结

    这是一篇关于javaSe的基础班关于IO流的全套总结,希望能对你的基础学习有所帮助。

    java数据流 I/O系统

    Java的I/O系统是Java平台的核心特性之一,用于处理数据的输入输出操作。这个系统包括一系列的类和接口,主要用于字节和字符的传输,涵盖了从简单文件操作到复杂的网络通信。在Java中,I/O操作是通过数据流的概念来...

    Java I/O 使用和最佳实践

    Java I/O系统是Java编程语言中的一个核心组成部分,它提供了处理输入输出操作的类和接口。这个系统的设计目的是为了使得应用程序能够与外部世界交互,包括读取和写入文件、网络数据、标准输入输出流等。在Java中,I/...

    MaglevIO,一个易于使用和高效的Java I/O库。基于Java NATEVEIO。.zip

    总结,MaglevIO是一个致力于提高Java I/O效率和易用性的库,它建立在NIO之上,提供了一种更高效、更简单的I/O操作方式。对于那些需要处理大量并发连接、追求高性能的Java应用来说,MaglevIO是一个值得考虑的工具。...

    Java-I/O框架总结,思维导图

    Java-I/O框架总结,思维导图

    Java文件I/O操作:读取与写入文件的全面指南

    #### 二、Java文件I/O基础 在Java中,文件I/O操作主要涉及以下几个类: - **File**:代表文件系统中的文件或目录。 - **FileReader**:用于读取字符文件。 - **BufferedReader**:提供字符输入流的缓冲。 - **...

    Java /io总结 很不错

    本文将对Java I/O进行详细的总结,包括基本概念、流的分类、缓冲区、转换流以及高级特性。 首先,理解Java I/O的基础是“流”。在Java中,流是一个数据序列,可以是字节流或字符流,用于读取或写入数据。流分为四大...

    JavaIO总结

    有关Java输入输出流的总结有关Java输入输出流的总结有关Java输入输出流的总结

    android 查找程序根目录下所有文件 java i/o与ListActivity的结合

    总结起来,通过结合Java的I/O流遍历文件和Android的ListActivity,我们可以实现查找并显示应用程序根目录下所有文件的功能。在实际开发中,还需要考虑权限管理(特别是对于Android 6.0及更高版本),以及对不同设备...

    Java_IO操作总结

    在这个总结中,我们将深入探讨Java I/O的几个关键知识点。 首先,我们要理解I/O的基本概念。I/O,即Input/Output,指的是计算机系统与外部设备之间交换数据的过程。在Java中,I/O操作主要涉及到java.io包中的类和...

Global site tag (gtag.js) - Google Analytics