IOUtil

简介: 本文介绍了Java中三种常见文件操作:读取文件全部内容、向文件追加内容及递归遍历目录下所有文件。强调所有IO操作必须在finally块中手动关闭资源,确保程序稳定与资源释放安全。

注意:所有IO操作均需在finally中手动关闭
1.读取指定文件内全部内容
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
String path = File.separator + "app" + File.separator + "test.txt";
File file = new File(path);
reader = new FileReader(file);
char[] bb = new char[1024];
StringBuffer allUploadFilePath = new StringBuffer();
// 每次读取到的字符长度
int n;
while ((n = reader.read(bb)) != -1) {
allUploadFilePath.append(new String(bb, 0, n));
}
2.追加内容到指定文件
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
File file = new File("D:/test.txt");
fileOutputStream = new FileOutputStream(file, true);
outputStreamWriter = new OutputStreamWriter(fileOutputStream);
bufferedWriter = new BufferedWriter(outputStreamWriter);
for (String conent : allFilePath) {
bufferedWriter.write("," + conent);
}
3.递归某目录下全部文件
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**

  • 获取路径下的所有文件/文件夹
  • @param directoryPath 目标路径(父级,
  • 如遍历:
  • 文件夹1
  • 文件1
  • 文件夹2
  • 文件2
  • 则写文件夹1全路径即可
    )
  • @param list 返回路径的集合
    */
    public static void readfile(String directoryPath, List list) {
    File file = new File(directoryPath);
    if (!file.isDirectory()) {
    list.add(file.getAbsolutePath());
    
    } else if (file.isDirectory()) {
    String[] filelist = file.list();
    for (int i = 0; i < filelist.length; i++) {
        File readfile = new File(directoryPath + File.separator + filelist[i]);
        if (!readfile.isDirectory()) {
            list.add(readfile.getAbsolutePath());
        } else if (readfile.isDirectory()) {
            readfile(readfile.getAbsolutePath(), list);
        }
    }
    
    }
    }
相关文章
|
10月前
|
缓存 开发工具 git
QLExpress使用及源码分析
QLExpress是阿里开源的轻量级规则引擎,支持通过注解与YAML配置实现业务逻辑解耦。基于AST语法树解析,提供上下文绑定、动态脚本执行与缓存机制,适用于复杂条件判断与计算场景,如BMI计算、用户规则校验等,具备高扩展性与易维护性。
|
10月前
|
Arthas 监控 前端开发
arthas精准定位Java应用CPU负载过高问题
通过Arthas的watch命令监控DispatcherServlet的getHandler方法,快速定位Spring MVC中处理请求的Controller;结合反编译功能,实时查看目标代码,提升排查效率。
|
10月前
|
Arthas 监控 Java
arthas 基础指令
Arthas简介:通过dashboard查看线程状态、CPU占用等;jad反编译类文件;thread分析线程堆栈及阻塞情况;watch监控方法执行耗时与参数;支持quit退出连接或stop彻底终止。适用于Java进程诊断,操作便捷,功能强大。(239字)
|
10月前
|
缓存 Dubbo Java
什么是API网关
API网关是一种架构思想,用于统一管理外部请求,实现请求路由、协议转换、鉴权、限流、熔断降级等功能。通过将多个服务接口聚合到网关,简化调用流程,提升系统安全与性能。常见实现如Soul、Zuul、Kong等,广泛应用于微服务架构中。
|
机器学习/深度学习 数据采集 自然语言处理
|
10月前
|
机器学习/深度学习 人工智能 运维
主流AI证书深度对比:从入门到进阶,怎么选不踩坑?
随着人工智能技术持续渗透各行各业,“懂AI”已从职业加分项变成不少岗位的基础要求。智联招聘数据显示,72%的AI相关岗位在招聘时会将“持有权威认证”作为筛选硬标准,持证者薪资溢价普遍达20%-35%。但市面上的AI证书五花八门,有国际大厂推出的技术认证,有国内厂商的生态绑定证书,还有适配零基础学习者的通用证书,到底哪款适合自己?本文就为你全面拆解主流AI证书的核心差异,帮你理清选择思路。
|
10月前
|
JavaScript Java 数据库连接
中阶段 低代码平台芋道:代码本地运行(☆)
新人入职需拉取项目代码并本地运行,常见问题如JDK、Maven、IDEA版本选择。项目基于Spring Boot + MyBatis Plus + Vue + Element,含RBAC权限、多租户、工作流等功能。需理解技术栈、核心功能与数据库设计,并录制8分钟以上讲解视频,提出未懂问题,快速融入团队。
|
10月前
|
前端开发 NoSQL Java
jeecgboot 单体版本
JeecgBoot单体版简介:基于Spring Boot 2.7 + Vue3 + TypeScript + Vite5,集成MybatisPlus、Shiro、Redis、Nacos等技术,支持代码生成、权限管理与微服务架构。前端使用Ant-Design-Vue,提供在线表单开发与低代码能力,快速构建企业级应用,适用于农商行笔试题等场景开发。(239字)
|
10月前
|
Java 数据库连接 调度
xxljob
本文深入分析XXL-JOB执行源码,涵盖架构设计与核心模块实现。包含带中文注释的源码包及流程图,详解国际化初始化、任务触发线程池(快慢池机制)、注册中心心跳检测、失败重试告警、任务结果丢失处理、日志清理及时间轮调度等核心逻辑,助你全面掌握其原理。
|
10月前
|
存储 算法 BI
XXLJob
本文介绍XXL-JOB本地运行全流程:下载源码后,导入数据库并启动服务端,配置数据源,访问管理后台;客户端启动后自动注册执行器,通过控制台配置调度任务与路由策略,支持多种执行模式如轮询、随机、分片广播等,并可实时查看执行日志,完成任务测试与调试。