`

读取超大文件的两个类BufferedReader和MappedByteBuffer

阅读更多

BufferedRead提供了一套缓冲机制,读取文件时先在内存中建立一块缓冲区,然后读取文件填满缓冲区,

然后在缓冲区中对文件进行实际的操作,当缓冲区读完后调用read方法继续填充缓冲区;

MappedByteBuffer将文件映射到虚拟内存中,如果文件比较大可以分段映射,分段映射需要指定文件的具体映射部分;在对内存中的文件进行操作,大大提高效率;MappedByteBuffer map(int mode,long position,long size); 可以把文件的从position开始的size大小的区域映射为内存映像文件,mode指出了可访问该内存映像文件的方式:READ_ONLY(只读),READ_WRITE(读写),PRIVATE(专用)

a. READ_ONLY,(只读):读取缓冲区中的数据

b. READ_WRITE(读/写): 对得到的缓冲区的更改最终将传播到文件;该更改对映射到同一文件的其他程序不一定是可见的。 (MapMode.READ_WRITE)

c. PRIVATE(专用):对得到的缓冲区的更改不会传播到文件,并且该更改对映射到同一文件的其他程序也不是可见的;相反,会创建缓冲区已修改部分的专用副本。 (MapMode.PRIVATE)

具体使用可以参考API哦。。。。

 

 

分享到:
评论

相关推荐

    java 读取文件方法的总结

    Java中的`BufferedReader`类提供了按行读取文件内容的能力,这对于处理文本文件非常有用。例如: ```java BufferedReader br = new BufferedReader(new FileReader(fileName)); String line; while ((line = br...

    Java读取文件方法大全

    在这个例子中,`ReadFromFile`类中包含两种读取文件的方法:一种是以字节为单位,另一种是以字符为单位。 1. **以字节为单位读取文件**: - `readFileByBytes`方法展示了如何使用`FileInputStream`读取文件。首先...

    IO文件读取

    这两个类直接操作文件,但不支持缓冲,所以不适合处理大量数据。例如: ```java FileReader fr = new FileReader("example.txt"); FileWriter fw = new FileWriter("example.txt"); ``` 2. **使用...

    文件操作工具类

    文件操作工具类主要用于简化和标准化与文件交互的流程,包括但不限于文件的创建、读取、写入、追加、删除以及更复杂的IO操作。以下是对这些知识点的详细阐述: 一、文件创建 在编程中,我们通常会使用特定的API或...

    File merge文件合并

    这个过程涉及到将两个或多个文件的内容整合到一个单一的文件中,以便于管理和分析。本篇文章将详细探讨“File merge文件合并”这一主题,包括其概念、应用场景、以及如何在Java编程语言中实现文件合并。 文件合并的...

    工具类,文本文件替换方法.zip

    此时,可以采用流式处理(streaming)的方式逐行读取和写入,或者使用Java NIO的`FileChannel`和`MappedByteBuffer`进行内存映射文件操作,提高效率。 综上所述,"工具类,文本文件替换方法.zip"是一个包含文本替换...

    二级文件管理系统java

    在Java中,文件和目录的操作主要依赖于`java.io`和`java.nio`这两个包。`java.io`提供了基础的I/O流处理,如File类用于表示文件和目录,以及FileInputStream、FileOutputStream等类用于读写文件。而`java.nio`提供了...

    读大文件Java

    这两个类的工作原理与字符流类似,只是处理字节流。 3. **RandomAccessFile**: 如果需要随机访问文件,`RandomAccessFile`是理想选择。它允许在文件的任何位置读写,适合处理大型数据文件。 4. **NIO(New IO)...

    基于Java的实例源码-读写文本文件的示例代码.zip

    以及BufferedReader和BufferedWriter,这两个类提供了缓冲功能,可以提高读写性能。 2. **读取文本文件**: 使用FileReader和BufferedReader组合来读取文本文件。首先创建一个FileReader对象,然后用它初始化...

    基于java的操作系统课程设计-文件管理项目.zip

    在Java中,我们可以使用`java.io`和`java.nio`这两个包来与文件系统进行交互。 1. **文件操作**:在Java中,我们可以通过`File`类来创建、删除、重命名文件或目录。例如,`File file = new File("path")` 创建一个`...

    android文件读写源码

    首先,Android提供了`java.io`和`java.nio`两个包来支持文件操作。在`java.io`包中,`File`类用于表示文件或目录路径,`FileWriter`和`FileReader`用于文本文件的读写,而`BufferedInputStream`和`...

    IO流的操作

    - 字符流(Character Stream):处理Unicode字符数据,包括Reader和Writer两个基类,以及它们的子类,如BufferedReader、PrintWriter等。 3. 按功能分类: - 节点流(Node Stream):直接与特定的数据源或目的地...

    JAVA_输入输出及数据库操作.ppt

    这两个类分别用于从文件中读取和向文件中写入字节数据。FileInputStream实现了InputStream接口,FileOutputStream实现了OutputStream接口。 7.1.6 DataInputStream和DataOutputStream 这些类用于读写Java基本数据...

    bank银行转账存钱+txt

    - **IO流**:使用`InputStreamReader`和`BufferedReader`读取TXT文件,`OutputStreamWriter`和`PrintWriter`进行写入。数据以文本格式存储,每行表示一个账户记录。 3. **登录功能** - **用户验证**:系统需要...

    java io 系列操作代码练习 Java学习资料

    3. BufferedReader和BufferedWriter:这两个是缓冲字符流,提供缓冲区来提高读写效率。 4. DataInputStream和DataOutputStream:用于处理基本数据类型的输入输出。 5. ObjectInputStream和ObjectOutputStream:处理...

    IO详解宝典

    字节流处理的是8位的字节数据,包括InputStream和OutputStream两个抽象基类,分别用于处理输入和输出。字符流处理的是16位的Unicode字符,由Reader和Writer作为基础抽象类。这两类流又各自分为节点流和处理流,节点...

    Java IO流总结

    在Java中,IO流分为字节流和字符流两大类,每类又分为输入流和输出流。 字节流是最基本的IO流类型,处理的数据单位是字节,主要类包括InputStream和OutputStream。InputStream代表所有输入字节流的超类,常见的子类...

    Java方法排序五百万数据

    在Java中实现外部排序,可以创建一个BufferedReader或Scanner来读取文件,每次读取一部分数据,然后用Java内置的排序函数对这部分数据进行排序。之后,将排序后的数据写入一个新的临时文件。重复这个过程,直到所有...

    [Java4Android 33_Java当中的IO(二)

    Java将IO操作分为字节流和字符流两大类,每类又分为输入流和输出流,形成了一个四象限的框架。 2. **字节流** 字节流处理的是8位的字节数据,如文件读写。Java提供了一些基础类,如`InputStream`和`OutputStream`...

    Java I/O系统

    在处理大量数据时,`FileChannel`和`MappedByteBuffer`提供了内存映射文件的功能,允许高效地读写大文件,直接操作内存中的文件映射区域,减少了系统调用的开销。 此外,Java NIO(New Input/Output)是Java 1.4...

Global site tag (gtag.js) - Google Analytics