java IO流【常用流对象四】

Apache IO

  • JDK中提供的文件操作相关的类,但是功能都非常基础,进行复杂操作时需要做大量编程工作。实际开发中,往往需要你自己动手编写相关的代码,尤其在遍历目录文件时,经常用到递归,非常繁项。
  • Apache-commons工具包中提供了IOUtils/FileUtils,可以让我们非常方便的对文件和目录进行操作。本文就是让大家对IOUtils/FileUtils类有一个全面的认识便于大家以后开发与文件和目录相关的功能。
  • ApacheloUtils和FileUtils类库为我们提供了更加简单、功能更加强大的文件操作和IO流操作功能。

1 Apache基金会介绍

在这里插入图片描述

2 下载与添加commons-io包

  1. 下载地址
    在这里插入图片描述
    在这里插入图片描述
  2. 添加jar包
    1. 方式一:
    • 创建libs目录,添加commons-io的jar包
    • 右键将libs设置为库,即可
      在这里插入图片描述
      在这里插入图片描述
    1. 方式二:如下图
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

3 FileUtils的使用

3.1 FileUtils类中常用方法

  • 打开FileUtils的api文档,我们抽出一些工作中比较常用的方法,进行总结和讲解。总结如下:
方法名说明
cleanDirectory清空目录,但不删除目录
contentEquals比较两个文件的内容是否相同
copyDirectory将一个目录内容接贝到另一个目录。可以通过FileFilter过滤需要拷贝的文件。
copyFile将一个文件拷贝到一个新的地址
copyFileToDirectory将一个文件拷贝到某个目录下。
copylnputStreamToFile将一个输入流中的内容拷贝到某个文件。
deleteDirectory删除目录。
deleteQuietly删除文件。
istFiles列出指定自录下的所有文件
openlnputsteam打开指定文件的输入流。
readFileToString将文件内容作为字符串返回
readLines将文件内容按行返回到一个字符串数组中
size返回文件或目录的大小
write将学符串内容直接写到文件中
writeByteArrayToFile将字节数组内容写到文件中

3.2 FileUtils的使用一【readFileToString】

package IO流.ApacheIO包;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

/**
 * @author 缘友一世
 * date 2022/10/27-22:05
 */
public class FileUtilsDemo1 {
    public static void main(String[] args) {
        try {
            String content = FileUtils.readFileToString(new File("basic grammar/src/IO流/write.txt"), "utf-8");
            System.out.println(content);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }
}

在这里插入图片描述

3.3 FileUtils的使用二【copyDirectory】

package IO流.ApacheIO包;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

/**
 * @author 缘友一世
 * date 2022/10/27-22:13
 */
public class FileUtilsDemo2 {
    public static void main(String[] args) throws IOException {
        FileUtils.copyDirectory(new File("basic grammar/src/IO流/ApacheIO包/test"), new File("basic grammar/src/IO流/APache包/desition"), new FileFilter() {
            //文件拷贝的过滤条件
            @Override
            public boolean accept(File pathname) {
                if(pathname.isDirectory() || pathname.getName().endsWith("html")) {
                    return true;
                }
                return false;
            }
        });
    }
}

4 IOUtils的使用

  • 打开IOUtils的api文档,我们发现它的方法大部分都是重载的。所以,我们理解它的方法并不是难事。因此,对于方法的用法总结如下:
方法名说明
buffer方法将传入的流进行包装,变成缓冲流。并可以通过参数指定缓冲大小。
closeQueitly方法关闭流
contentEquals方法比较两个流中的内容是否一致
copy方法将输入流中的内容拷贝到输出流中,并可以指定字符编码。
copyLarge方法将输入流中的内容拷贝到输出流中,适合大于2G内容的拷贝
linelterator方法返回可以送代每一行内容的选代器
read方法将输入流中的部分内容读入到字节数组中
readFully方法将输入流中的所有内容读入到字节数组中
readLine方法读入输入流内容中的一行
toBufferedlnputStream,toBufferedReader将输入转为带缓存的输入流。
toByteArray,toCharArray将输入流的内容转为字节数组、字符数组。
toString将输入流或数组中的内容转化为字符串。
write方法向流里面写入内容
writeLine方法向流里面写入一行内容

toString案例

package IO流.ApacheIO包;

import org.apache.commons.io.IOUtils;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * @author 缘友一世
 * date 2022/10/27-22:44
 */
public class IOUtilsDemo {
    public static void main(String[] args) throws IOException {
        String content = IOUtils.toString(new FileInputStream("basic grammar/src/IO流/write.txt"), "utf-8");
        System.out.println(content);
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值