通过nio内存映射文件方式进行读/写操作
2021/9/23 7:12:11
本文主要是介绍通过nio内存映射文件方式进行读/写操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
FileChannel的map()方法可以将磁盘上的文件映射到计算机的虚拟内存中,并将虚拟内存包装成一个MappedByteBuffer对象。输出流的FileChannel通过write(MappedByteBuffer对象)方法可以将文件写出到指定位置。该方法不需要频繁的磁盘输入输出,提高I/O流的读写效率。但计算机的虚拟内存会严重影响该种方式。
package com.wang.TestBuffer; import java.io.*; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; public class Test04 { public static void main(String[] args) { File file = new File("D:\\IdeaProjects\\TestNIO\\src\\main\\java\\com\\wang\\TestBuffer\\Test04.java"); try( FileInputStream fileInputStream = new FileInputStream(file); FileOutputStream fileOutputStream = new FileOutputStream("D:\\IdeaProjects\\TestNIO\\src\\main\\java\\com\\wang\\TestBuffer\\Test04.txt"); FileChannel inChannel =fileInputStream.getChannel(); FileChannel outChannel = fileOutputStream.getChannel(); ) { MappedByteBuffer buffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, file.length()); //写出操作 outChannel.write(buffer); //翻转,进行读取操作 buffer.flip(); //解码 Charset charset =Charset.defaultCharset(); System.out.println(charset.decode(buffer)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
这篇关于通过nio内存映射文件方式进行读/写操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南