`

[java][nio]MappedByteBuffer修改大文件

阅读更多

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
/**
 * 
 * MappedByteBuffer可用于对大文件的修改.
 *
 */
public class LargeMappedFiles {

	static int length = 128 * 1024 * 1024;//128m
	
	public static void main(String[] args) throws FileNotFoundException, IOException {
		RandomAccessFile file = new RandomAccessFile("d:\\a.txt","rw");
		//MappedByteBuffer是特殊的直接缓冲器.必须指定文件的开始位置和文件大小.
		MappedByteBuffer out = file.getChannel().map(FileChannel.MapMode.READ_WRITE, file.length(), length);
		for(int i=0; i<length; i++){
			out.put((byte)'x');
		}
		System.out.println("Finish writing.");
		for(int i = length/2; i<(length/2 + 6); i++){
			System.out.println((char)out.get(i));
		}
		file.close();
	}

}

分享到:
评论
1 楼 zlx567 2013-08-05  


相关推荐

    Java NIO 中英文版 + Pro Java 7 NIO.2

    5. **文件系统操作**:NIO提供FileChannel,可以高效地进行文件读写操作,包括映射文件到内存(MappedByteBuffer)。 6. **管道(Pipes)**:管道是两个线程之间进行单向数据传输的通道,用于线程间通信。 7. **...

    JavaNIO.pdf

    Java NIO中提供了多种类型的缓冲区,如ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer、ShortBuffer、MappedByteBuffer等,每种类型的缓冲区都有其特定的用途和应用场景。 通道...

    Java NIO 应用使用内存映射文件实现进程间通信

    在Java NIO中,内存映射文件(MappedByteBuffer)是一个重要的特性,它允许将文件直接映射到内存中,以便于快速访问和修改文件内容。这一特性不仅提高了读写效率,而且还能用于进程间通信(IPC)。 内存映射文件的...

    Java NIO原理分析及代码实例

    在实际应用中,Java NIO常用于网络服务器、大文件处理、多线程间的通信等场景。理解并掌握NIO的原理和使用,对于提升Java应用的性能和可扩展性至关重要。通过以上介绍的知识点,你可以开始编写基于NIO的应用,例如...

    JavaNIO教程高清

    此外,Java NIO的内存映射文件(MappedByteBuffer),允许文件或文件的一部分被映射到内存中,这使得对文件的访问和修改可以像访问内存一样简单快捷。 以上是Java NIO的核心概念和组件的介绍。在实际的编程实践中,...

    Java NIO 国外 PPT 课件(精华)

    最后,`Java_NIO.ppt`很可能是整个NIO主题的综合教程,覆盖了从基础到进阶的所有内容,包括基本的读写操作、多路复用、内存映射文件(MappedByteBuffer)以及NIO在Socket通信中的应用等。 总的来说,这些PPT课件构成...

    commons-mmf.rar_java nio_java共享内存_共享内存

    当一个线程修改了`MappedByteBuffer`中的内容时,这些更改会立即反映到原始文件中,反之亦然。这种方式特别适合于大数据处理和实时系统,因为它减少了数据在内核空间和用户空间之间来回拷贝的次数。 在Java中,使用...

    Apress.Pro.Java.7.NIO.2.2011

    5. **文件系统操作**:NIO提供了一组新的API来处理文件系统操作,如文件通道的映射、文件属性的获取和修改、异步文件操作等,这些功能比标准的File类更强大。 6. **管道(Pipe)**:管道是两个线程之间的单向数据...

    JAVA IO-NIO 详解

    - **MappedByteBuffer**: 直接映射文件到内存中的Buffer,允许直接在内存中修改文件内容,无需通过Channel读取。 - **优势**: 提高文件读写的效率。 **2. 使用** - **创建MappedByteBuffer**: 通过FileChannel的...

    【IT十八掌徐培成】Java基础第27天-01.MappedMemoryBuffer-文件内存映射缓冲区.zip

    Java中的MappedByteBuffer是Java NIO(New Input/Output)库的一部分,它提供了一种高效的方式来访问和操作大文件。在标题和描述中提到的“文件内存映射缓冲区”是Java处理大文件的一种高级技术,它允许将文件直接...

    java文件操作总结

    5. **NIO(New IO)**:Java 1.4引入了NIO(Non-blocking I/O),提供了更高效的数据传输方式,如`FileChannel`、`MappedByteBuffer`等。NIO支持选择器(Selector)进行多路复用,适合处理大量并发连接。 6. **文件...

    Java文件操作源码大全

    19. **内存映射文件**:`java.nio.MappedByteBuffer`提供内存映射文件功能,提升大文件处理效率。 以上只是Java文件操作的一部分知识点,实际开发中还会涉及文件权限控制、并发访问、流操作等更多内容。了解并熟练...

    java 开发的文件系统

    - 可能会用到`java.nio`包中的类,如`FileChannel`和`MappedByteBuffer`,它们提供了更高效的数据传输方式。 - 设计模式如工厂模式(创建文件对象)、装饰者模式(增加文件操作的功能)和观察者模式(文件变化通知...

    java的nio的使用示例分享

    NIO.2是Java 7引入的进一步改进,提供了更多的功能,包括文件系统事件监听、异步I/O等。 1. **变更通知**: NIO.2引入了文件系统事件监听的功能,通过`java.nio.file.WatchService`接口实现。例如,开发者可以注册...

    java 工具包 集合 网络 图像 流 字符串 时间 文件 处理工具

    Java NIO的FileChannel和MappedByteBuffer支持大文件的高效处理。 以上知识点构成了Java开发中的基础工具,熟练掌握这些工具包将极大地提高代码质量和开发效率。无论是在桌面应用、Web服务还是移动应用开发中,都能...

    java大字段转换

    - 使用`java.nio.MappedByteBuffer`将文件映射到内存中,允许直接操作文件而无需全部加载到内存。 6. **Off-Heap存储**: - 使用Off-Heap内存,如Apache JBoss的`Chronicle Queue`或Oracle的Java堆外内存分配,...

    JAVA_file.rar_操作 文件

    对于大文件的处理,NIO的内存映射文件(MappedByteBuffer)也是很好的选择,它可以将文件部分映射到内存,从而提高读写速度。 最后,Java的I/O流库提供了丰富的选择,如ObjectInputStream和ObjectOutputStream用于...

    NIO trick and trap .pdf

    - **FileChannel.map/MappedByteBuffer**:映射文件到内存,实现零拷贝。 **2. 高效内存管理** - **合理选择Buffer类型**:根据实际需求选择合适的`ByteBuffer`类型。 - **缓存管理**:合理设计缓存机制,减少不必...

    打开二进制的软件 java

    4. **使用FileChannel和MappedByteBuffer**:通过`java.nio`包中的类,可以进行更高效的数据传输。`FileChannel`允许直接从文件通道读写数据,而`MappedByteBuffer`则可以将文件映射到内存,提供随机访问和高性能的...

Global site tag (gtag.js) - Google Analytics