2021-07-10 Apache IO

Apache IO包

Apache-commons工具包中提供了IOUtils/FileUtils,可方便的对文件和目录进行操作。

FileUtils类

【常用方法】

  • cleanDirectory:清空目录,但不删除目录
  • contentEquals:比较两个文件的内容是否相同
  • copyDirectory:将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的文件
  • copyFile:将一个文件拷贝到一个新的地址
  • copyFileToDirectory:将一个文件拷贝到某个目录下
  • copylnputStreamToFile:将一个输入流中的内容拷贝到某个文件
  • deleteDirectory:删除目录
  • deleteQuietly:删除文件
  • listFiles:列出指定目录下的所有文件
  • openInputSteam:打开指定文件的输入流
  • readFileToString:将文件内容作为字符串返回
  • readLines:将文件内容按行返回到一个字符串数组
  • size:返回文件或目录的大小
  • write:将字符串内容直接写到文件中
  • writeByteArrayToFile:将字节数组内容写到文件中
  • writeLines:将容器中的元素的toString方法返回的内容依次写入文件中
public class FileUtilsDemo1 {
    public static void main(String[] args) throws Exception{
        String s = FileUtils.readFileToString(new File("E:/001.txt"),"utf-8");
        System.out.println(s);
    }
}
public static void main(String[] args) throws Exception{
        FileUtils.copyDirectory(new File("E:/a"),new File("D:/a"), new FileFilter(){
            //过滤条件
            @Override
            public boolean accept(File pathname) {
                if(pathname.isDirectory() || pathname.getName().endsWith("html")){
                    return true;
                }
                return false;
            }
        });
    }
IoUtils
  • buffer方法:将传入的流进行包装,变成缓冲流。并可以通过参数指定缓冲大小。
  • closeQueitly方法:关闭流。
  • contentEquals 方法:比较两个流中的内容是否一致。
  • copy方法:将输入流中的内容拷贝到输出流中,并可以指定字符编码。
  • copyLarge方法:将输入流中的内容拷贝到输出流中,适合大于2G内容的拷贝。
  • linelterator方法:返回可以迭代每一行内容的迭代器。
  • read方法:将输入流中的部分内容读入到字节数组中。
  • readFully方法︰将输入流中的所有内容读入到字节数组中。
  • readLine方法:读入输入流内容中的一行。
  • toBufferedInputStream,toBufferedReader:将输入转为带缓存的输入流。
  • toByteArray,toCharArray:将输入流的内容转为字节数组、字符数组。
  • toString:将输入流或数组中的内容转化为字符串。
  • write方法:向流里面写入内容。
  • writeLine方法:向流里面写入一行内容。
public static void main(String[] args) throws Exception{
        String content = IOUtils.toString(new FileInputStream("e:/001.txt"), "utf-8");
        System.out.println(content);
    }

IO流总结

【按流的方向分类】

  • 输入流:数据源到程序(InputStream、Reader读进来)
  • 输出流:程序到目的地(OutPutStream、Writer 写出去)

【按流的处理数据单元分类】

  • 字节流:按照字节读取数据(InputStream、OutputStream)。
  • 字符流:按照字符读取数据(Reader、Writer)。

【按流的功能分类】

  • 节点流:可以直接从数据源或目的地读写数据。
  • 节点流:可以直接从数据源或目的地读写数据。
  • 处理流:不直接连接到数据源或目的地,是处理流的流。通过对其他流的处理提高程序的性能。

【Io的四个基本抽象类】 InputStream、OutputStream、Reader、Writer

【lnputStream的实现类】FilelnputStream、ByteArraylnutStream、BufferedInputStream、DatalnputStream、ObjectlnputStream

【outputStream的实现类】

FileOutputStream、ByteArrayOutputStream、BufferedOutputStream、DataOutputStream、ObjectOutputStream、PrintStream

【Reader的实现类】FileReader、BufferedReader、InputStreamReader

【Writer的实现类】FileWriterBufferedWriter、OutputStreamWriterl

【序列化】把Java对象转换为字节序列的过程
【反序列化】把字节序列恢复为Java对象的过程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值