《JAVA300集》IO流_CommonsIO-day19

目录

CommonsIO

前言

 FileUtils

(1)下载工具包

(2)尝试使用API

(3)读取文件地址

(4)读取文件内容

(5)写出文件内容

(6)拷贝


CommonsIO

前言

(1)自己写的java程序是 class,多个class组成 jar,多个jar组成 组件,多个组件形成框架。小细节:组件是可以主动选择的,框架是被动的。

(2)Apache软件基金会(ASF),是专门为支持开源软件项目而办的一个非盈利性组织,官方网站 www.apache.org 。

(3)JDK中提供的文件操作相关的类,但是功能都非常基础,进行复杂操作时需要做大量编程工作。 Apache-commons工具包中提供了IOUtils/FileUtils,可以让我们非常方便的对文件和目录进行操作。

 FileUtils

(1)下载工具包

http://commons.apache.org/proper/commons-io/

download 最新版本

第一个tar.gz是linux版本,第二个zip是windows版本

下载解压后:

标蓝的两个文件要复制到项目中

然后把路径添加到项目中,具体操作

1.点击 File ->  Project Structure ->“Modules”

2.在 “Dependencies” 标签界面下,点击右边绿色的 “+”号,选择第一个选项“JARs or directories...”,选择相应的jar包,点“OK”,jar包添加成功

3. 刚刚新加的jar包打勾,点击OK回到项目界面,完成。

(2)尝试使用API

import org.apache.commons.io.FileUtils;
import java.io.*;

public class CommonIOTest01 {
    public static void main(String[] args) {
        //文件大小
        long len = FileUtils.sizeOf(new File("D:/Java/IO/abc.txt"));
        System.out.println(len);
        //目录大小
        len = FileUtils.sizeOf(new File("D:/Java/IO"));
        System.out.println(len);
    }
}

(3)读取文件地址

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.EmptyFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;

import java.io.*;
import java.util.Collection;

public class CommonIOTest01 {
    public static void main(String[] args) {
        //列出子孙级
        Collection<File> files = FileUtils.listFiles(new File("D:/Java/IO"),
                                                     EmptyFileFilter.NOT_EMPTY,null); //不要空文件和子孙级
        for (File file:files){
            System.out.println(file);
        }
        System.out.println("_____________");
        files = FileUtils.listFiles(new File("D:/Java/IO"),
                EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE); //不要空文件,要文件的子孙级
        for (File file:files){
            System.out.println(file);
        }
        //只看文件后缀是txt的
        System.out.println("_____________");
        files = FileUtils.listFiles(new File("D:/Java/IO"),
                new SuffixFileFilter("txt"), DirectoryFileFilter.INSTANCE); //不要空文件,要文件的子孙级
        for (File file:files){
            System.out.println(file);
        }
    }
}

(4)读取文件内容

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;

import java.io.File;
import java.io.IOException;
import java.util.List;

/*
*读取文件内容
*  */
public class CommonIOTest02 {
    public static void main(String[] args) throws IOException {
        //读取文件
        String msg = FileUtils.readFileToString(new File("emp.txt"),"UTF-8");
        System.out.println(msg);
        byte[] datas = FileUtils.readFileToByteArray(new File("emp.txt"));
        System.out.println(datas.length);
        //逐行读取
        List<String> msgs = FileUtils.readLines(new File("emp.txt"),"UTF-8");
        for(String string:msgs){
            System.out.println(string);
        }
        //迭代器读取
        LineIterator it = FileUtils.lineIterator(new File("emp.txt"),"UTF-8");
        while(it.hasNext()){
            System.out.println(it.nextLine());
        }
    }
}

(5)写出文件内容

import org.apache.commons.io.FileUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.List;

/*
* 写出内容
* */
public class CommonIOTest03 {
    public static void main(String[] args) throws IOException {
        //写出文件
        FileUtils.write(new File("happy.txt"),"学习使人快乐\r\n","UTF-8",true);  //最后一个元素 是否追加元素,否是从头来
        FileUtils.writeByteArrayToFile(new File("happy.txt"),"学习使人快乐\r\n".getBytes("UTF-8"),true);
        //写出列表
        List<String> datas = new ArrayList<String>();
        datas.add("高一");
        datas.add("高二");
        datas.add("高三");
        FileUtils.writeLines(new File("happy.txt"),datas,"+",true);
    }
}

(6)拷贝

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

/*
* 拷贝文件
* */
public class CommonIOTest04 {
    public static void main(String[] args) throws IOException {
        //复制文件
        FileUtils.copyFile(new File("happy.txt"),new File("happy-copy.txt"));
        //复制文件到目录
        FileUtils.copyFileToDirectory(new File("happy.txt"),new File("lib"));
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值