当前位置: 首页 > news >正文

jimfs:Java内存文件系统,脱离磁盘IO瓶颈利器

文章目录

  • 一、写在前面
  • 二、使用
    • 1、基本使用
    • 2、注意

一、写在前面

开源地址:https://github.com/google/jimfs

Jimfs由Google发布,实现了 java.nio.file 接口,支持模拟不同操作系统的文件系统特性(如 Windows/Linux 路径风格)。
主要用于单元测试(避免磁盘 IO 影响速度和状态)、临时数据处理(短期缓存、中间计算结果)和环境隔离(多任务互不干扰)等场景。

<dependency><groupId>com.google.jimfs</groupId><artifactId>jimfs</artifactId><version>1.3.1</version>
</dependency>

二、使用

1、基本使用

import com.google.common.collect.ImmutableList;
import com.google.common.jimfs.Configuration;
import com.google.common.jimfs.Jimfs;import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;public class Test {public static void main(String[] args) throws Exception {// Linux系统目录FileSystem fs = Jimfs.newFileSystem(Configuration.unix());Path foo = fs.getPath("/foo");Files.createDirectory(foo);// 写入hello.txtPath hello = foo.resolve("hello.txt"); // /foo/hello.txtFiles.write(hello, ImmutableList.of("hello world"), StandardCharsets.UTF_8);// 读取List<String> lines = Files.readAllLines(hello, StandardCharsets.UTF_8);for (String line : lines) {System.out.println(line);}}
}

2、注意

jimfs只能使用java.nio相关的API,不过这已经足够。

其他更多使用方式参考java.nio.file.Files即可

http://www.lryc.cn/news/602195.html

相关文章:

  • 全球Wi-Fi室外天线市场洞察2024–2032:规模、驱动因素与技术演进
  • Mybatis_4
  • Focusing on Tracks for Online Multi-Object Tracking—CVPR2025多目标跟踪(TrackTrack)
  • Ethereum:Geth运维实战,geth export与geth import命令的实用性深度评估
  • 使用 Qt Installer Framework(IFW)进行打包
  • 网络安全第14集
  • 8.1 ESP32CAM 服务器 网络摄像头
  • 【mysql】—— mysql中的timestamp 和 datetime(6) 有什么区别,为什么有的地方不建议使用timestamp
  • 深入探索Linux:忙碌的车间“进程”间通信
  • 【Linux】基本指令(2)
  • Linux DNS解析1--终端通过网关或者路由器进行域名解析的原理
  • WAIC 2025深度解析:当“养虎”警示遇上机器人拳击赛
  • 设计模式(二十二)行为型:策略模式详解
  • 发布“悟能”具身智能平台,商汤让机器人像人一样和现实世界交互
  • 枚举策略模式实战:优雅消除支付场景的if-else
  • 时序数据基座升维:Apache IoTDB 以“端边云AI一体化”重构工业智能决策
  • 企业级JWT验证最佳方案:StringUtils.hasText()
  • 【学习路线】AI开发工程师成长指南:从机器学习基础到大模型应用
  • Ubuntu服务器上JSP运行缓慢怎么办?全面排查与优化方案
  • Python 列表内存存储本质:存储差异原因与优化建议
  • 【Linux | 网络】传输层(UDP和TCP) - 两万字详细讲解!!
  • 二级域名分发源码最新开源版
  • uni-datetime-picker兼容ios
  • 无界设计新生态:Penpot开源平台与cpolar的云端协同创新实践
  • CacheGen:用于快速大语言模型推理服务的 KV 缓存压缩与流式传输
  • 【Unity笔记】Unity Camera.cullingMask 使用指南:Layer 精准控制、XR 多视图与性能提升
  • Python + Requests库爬取动态Ajax分页数据
  • 云原生作业(haproxy)
  • 迅为RK3568开发板OpeHarmony学习开发手册-配置电源管理芯片和点亮HDMI屏幕-配置电源管理芯片
  • Vue2-封装一个含所有表单控件且支持动态增减行列的表格组件