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);
        }
    }
    
    }
    }
相关文章
|
18小时前
|
SQL Dubbo Java
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池类故障的常见成因及应对策略。涵盖数据库慢查询、连接池配置不当、超时设置缺失等问题,结合真实案例剖析线程池满的根本原因,并提出fast-fail、流控、背压、谨慎重试等最佳实践,助力开发者提升系统稳定性。
|
19小时前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
本教程介绍如何在Eclipse中配置Java Web开发环境,包括JDK、Tomcat安装与版本匹配,项目导入(支持Maven与非Maven),Eclipse中绑定Tomcat服务器并部署运行项目,附常见问题如数据库连接配置错误的解决方法。
|
18小时前
|
Java 测试技术 API
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因未灰度发布的新功能引发空指针异常,导致全球服务中断超7小时。故障暴露了配置管理与错误处理的短板。本文结合Nacos等配置中心的IP/标签灰度方案,探讨如何通过渐进式发布降低系统风险,提升稳定性。
|
19小时前
|
Java 大数据
Java基础集合ArrayList扩容机制
本文详解ArrayList的add及扩容机制:添加元素时先调用ensureCapacityInternal(),首次扩容至10;通过grow()实现容量1.5倍增长(oldCapacity + (oldCapacity &gt;&gt; 1)),当元素数超当前容量时触发扩容。length为数组属性,length()为字符串方法,size()用于集合大小获取。
|
19小时前
|
Java 数据库连接 调度
xxljob
本文深入分析XXL-JOB执行源码,涵盖架构设计与核心模块实现。包含带中文注释的源码包及流程图,详解国际化初始化、任务触发线程池(快慢池机制)、注册中心心跳检测、失败重试告警、任务结果丢失处理、日志清理及时间轮调度等核心逻辑,助你全面掌握其原理。
|
19小时前
|
API 数据库
soul
本文介绍Soul网关入门及核心原理,涵盖环境搭建、Dubbo-zk应用集成、网关接入、数据库设计、数据同步机制与API网关概念。点击了解详情:https://blog.csdn.net/weixin_38964895/category_10189202.html
|
19小时前
|
存储 API 数据库
Activiti框架拓展
Activiti表以ACT_开头,分五类:ACT_RE_*存流程定义与资源;ACT_RU_*存运行时实例、任务与变量;ACT_HI_*存历史数据;ACT_ID_*存用户组等身份信息;ACT_GE_*存通用数据。各表协同支持流程引擎高效运作。
|
19小时前
|
存储 JSON Dubbo
Soul数据库设计
本插件采用数据库设计,存储插件、选择器、规则及其关联关系。通过UML类图展示表结构:一个插件对应多个选择器,一个选择器/规则包含多个匹配条件。`plugin`、`selector`、`rule`、`rule_condition`等表构成Soul核心架构,支持灵活配置与匹配。`handle`字段以JSON形式存储差异化处理逻辑,`meta_data`用于Dubbo泛化调用接口方法映射。
|
19小时前
|
Java
ACTIVITI
本节带你30分钟快速上手Activiti,涵盖工作流概念、SpringBoot集成、核心代码实现、表模型解析及项目分享,助你高效掌握Activiti7.0基础与应用。视频教程同步配套。
|
19小时前
|
数据可视化 Java 关系型数据库
认识Activiti
工作流指如请假、报销等需审批的业务流程,通过可视化引擎实现自动化管理。常见技术包括BPMN、Activiti和Flowable,广泛应用于CRM、TMS、WMS等系统,提升企业流程效率与灵活性。