java commonsIO

本文详细介绍Apache Commons IO库的使用方法,包括文件和文件夹大小统计、文件查找、读写、拷贝等功能,适用于Java开发者提升文件处理效率。

是对所有IO操作的封装,先到apache官网下载jar包http://commons.apache.org/proper/commons-io/download_io.cgi,下载最新版

统计文件和文件夹的大小

package study_commons;

import java.io.File;

import org.apache.commons.io.FileUtils;

public class test01 {
	public static void main(String[] args) {
		long size = FileUtils.sizeOf(new File("C:\\Users\\liweimo\\eclipse-workspace\\Study_01\\src\\study_commons\\test01.java"));
		System.out.println("文件大小" + size);
		size = FileUtils.sizeOf(new File("C:\\Users\\liweimo\\eclipse-workspace\\Study_01"));
		System.out.println("文件夹大小" + size);
	}
}

查找文件

package study_commons;

import java.io.File;
import java.util.Collection;

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;

public class test02 {
	public static void main(String[] args) {
		Collection<File> files = FileUtils.listFiles(new File("C:\\Users\\liweimo\\eclipse-workspace\\Study_01"),
				EmptyFileFilter.NOT_EMPTY,//文件内容不为空
				null);
		for (File file : files) {
			System.out.println(file.getAbsolutePath());
		}
		System.out.println("------------------------------");
		Collection<File> files2 = FileUtils.listFiles(new File("C:\\Users\\liweimo\\eclipse-workspace"), 
				new SuffixFileFilter("java"),//查找所有文件后缀名为java的文件
				DirectoryFileFilter.INSTANCE);//DirectoryFileFilter.INSTANCE子孙文件
		for (File file : files2) {
			System.out.println(file.getAbsolutePath());
		}
	}
}

读取文件

package study_commons;

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

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

public class Test3 {
	public static void main(String[] args) throws IOException {
		//整个读取
		String msg = FileUtils.readFileToString(new File("a.txt"));
		System.out.println(msg);
		byte[] datas = FileUtils.readFileToByteArray(new File("a.txt"));
		System.out.println(datas.length);
		//逐行读取
		List<String> list = FileUtils.readLines(new File("a.txt"));
		for (String string : list) {
			System.out.println(string);
		}
		//迭代器读取文件
		LineIterator iter = FileUtils.lineIterator(new File("a.txt"));
		while (iter.hasNext()) {
			System.out.println(iter.nextLine());
		}
	}
}

写入文件

package study_commons;

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

import org.apache.commons.io.FileUtils;

public class Test4 {
	public static void main(String[] args) throws IOException {
		
		FileUtils.write(new File("b.txt"), "测试文件写入\r\n");
		FileUtils.writeStringToFile(new File("b.txt"), "测试文件写入1\r\n",true);//true追加写入
		FileUtils.writeByteArrayToFile(new File("b.txt"),"12334字节数组".getBytes(),true);//字节数组写入
		//数组数据写入
		List<String> datas = new ArrayList<String>();
		datas.add("1");
		datas.add("3");
		datas.add("13131");
		FileUtils.writeLines(new File("c.txt"), datas);
	}
}

拷贝文件

package study_commons;

import java.io.File;
import java.io.IOException;
import java.net.URL;

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

public class Test5 {
	public static void main(String[] args) throws IOException {
		//拷贝文件
		FileUtils.copyFile(new File("a.txt"), new File("d.txt"));
		//拷贝文件到指定的文件夹
		FileUtils.copyFileToDirectory(new File("a.txt"), new File("src"));
		//拷贝文件夹到当前目录
		FileUtils.copyDirectory(new File("lib"), new File("lib2"));
		//拷贝文件夹指定文件夹下
		FileUtils.copyDirectoryToDirectory(new File("lib"), new File("lib2"));
		//下载图片
		String url = "https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=suchmos&step_word=&hs=0&pn=0&spn=0&di=7370&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=1737284227%2C1285273756&os=1391117711%2C3928666892&simid=0%2C0&adpicid=0&lpn=0&ln=74&fr=&fmq=1560328960174_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fwx3.sinaimg.cn%2Flarge%2F006H8RYSly1fxvoqmdptaj30z60lj4qp.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fojtk5_z%26e3Bv54AzdH3Fppw6ptvsjAzdH3FrAzdH3Ffi5o%3Ft1%3Ddnal9a9da0nc8cblmm8b9l&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&force=undefined";
		FileUtils.copyURLToFile(new URL(url), new File("such.jpg"));
		//下载网页源码
		String data = IOUtils.toString(new URL("http://www.baidu.com"),"UTF-8");
		System.out.println(data);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值