常用工具类---IOUtils

本文涉及的产品
性能测试 PTS,5000VUM额度
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: 该文档是关于Java中文件操作的说明,强调所有IO操作必须在`finally`块中关闭。提供了三个示例:1) 读取指定文件`test.txt`的全部内容,使用`FileReader`和`StringBuffer`;2) 追加内容到`test.txt`文件,通过`FileOutputStream`, `OutputStreamWriter`和`BufferedWriter`实现;3) 递归遍历目录下的所有文件,使用`File`类和递归函数获取每个文件的绝对路径。

注意:所有IO操作均需在finally中手动关闭

1.读取指定文件内全部内容

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.追加内容到指定文件

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.递归某目录下全部文件

/**
  * 获取路径下的所有文件/文件夹
  * @param directoryPath 目标路径(父级,
  * 如遍历:
  * 文件夹1
  *     文件1
  *     文件夹2
  *         文件2
  * 则写文件夹1全路径即可
  )
  * @param list          返回路径的集合
  */
public static void readfile(String directoryPath, List<String> 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);
            }
        }
    }
}
相关文章
|
11月前
|
Java API 索引
【零基础学Java】—System类(三十五)
【零基础学Java】—System类(三十五)
|
4月前
|
XML JSON Java
常用工具类---JSONUtil
这段内容提供了Java中将不同数据结构转换为JSON的代码示例。包括使用`JSONArray`将一维和二维数组、对象、Map及List转换为JSON字符串,并展示了如何从JSON字符串转换回Object、List以及XML到JSON的转换。
|
4月前
|
存储 Java
常用工具类---StringUtil
这篇文档讨论了Java中处理超长字符串的问题。由于字符串字面量限制为65534个字符,超过此长度会导致编译错误。当从HTTP或RPC接收长字符串时,不能直接用字符串字面量接收。解决方案是使用StringBuilder动态构建字符串,通过分组处理超过限制的字符序列。示例代码展示了如何分割并重新组合超过长度限制的字符串。
|
存储 网络协议 Java
java基础 --- java包(package)
java基础 --- java包(package)
114 0
|
存储 Java 编译器
java基础 --- 内部类
java基础 --- 内部类
34 0
java202303java学习笔记第三十四天File得成员方法(创建删除)1
java202303java学习笔记第三十四天File得成员方法(创建删除)1
40 0
java202303java学习笔记第三十四天File得成员方法(创建删除)2
java202303java学习笔记第三十四天File得成员方法(创建删除)2
38 0
java202304java学习笔记第六十二天-ssm-页面跳转-返回对象和集合2
java202304java学习笔记第六十二天-ssm-页面跳转-返回对象和集合2
51 0
|
Java
【常用工具类】Java控制台打印工具类LogUtil
【常用工具类】Java控制台打印工具类LogUtil
366 0
【常用工具类】Java控制台打印工具类LogUtil
Java---关于集合学习的总结
Java---关于集合学习的总结