Apache Commons IO之FileUtils类操作

使用FileUtils类操作文件读写与拷贝

1.读取内容

package com.commons;

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

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

/**
 * 使用FileUtils类读内容
 * readFileToString()
 * readFileToByteArray()
 * lineIterator
 * readLines
 * 
 *
 */
public class IOTest03 {
	public static void main(String[] args) throws IOException {
		//读文件
		String msg=FileUtils.readFileToString(new File("E:\\java300集\\javaIO\\src\\com\\commons\\emp.txt"),"GBK");
		System.out.println(msg);
		
		byte[] datas = FileUtils.readFileToByteArray(new File("E:\\java300集\\javaIO\\src\\com\\commons\\emp.txt"));
			readByte(datas);//读字节数组
		
			//逐行读
		List<String> msgs = FileUtils.readLines(new File("E:\\java300集\\javaIO\\src\\com\\commons\\emp.txt"),"GBK");
		for (String string : msgs) {
			System.out.println(string);
		}
		
		LineIterator it =FileUtils.lineIterator(new File("E:\\java300集\\javaIO\\src\\com\\commons\\emp.txt"),"GBK");
		while(it.hasNext()) {
			System.out.println(it.nextLine());
		}
	}
	
	//读字节数组
	public static void readByte(byte[] datas) {
		InputStream is = null; 
		try {
			is = new ByteArrayInputStream(datas);
			 //3.操作
			byte[] flush = new byte[5];//缓冲容器
			int len = -1;//接受长度
			while((len=is.read(flush))!=-1) {
				//字节数组-->字符串
				String str = new String(flush,0,len);
				System.out.println(str);	
			}
			
		}
		catch(IOException e){
			e.printStackTrace();
		}finally {
			//4.释放资源
			try {
				if(null!=is ) 
					is.close();
			}catch (IOException e) {
					// TODO Auto-generated catch block
				e.printStackTrace();
				}
			}
			
		
	}
}

2.写入内容

package com.commons;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;

/**
 * 使用FileUtils写出内容
 * write
 * writeStringToFile 字符串写入文件
 * writeByteArrayToFile 字节数组写入文件
 * writeLines 列表内容写入文件
 */
public class IOTest04 {

	public static void main(String[] args) throws IOException {
		//写出文件
		FileUtils.write(new File("test.txt"), "学习是一件伟大的事业\r\n","GBK");
		FileUtils.writeStringToFile(new File("test.txt"), "学习是一件辛苦的事业\r\n","GBK",true);
		FileUtils.writeByteArrayToFile(new File("test.txt"), "学习是一件幸福的事业\r\n".getBytes("GBK"),true);
		
		//写出列表
		List<String> datas =new ArrayList<String>();
		datas.add("3");
		datas.add("2");
		datas.add("1");
		
		
		FileUtils.writeLines(new File("test.txt"), datas,"/",true);//file,数据,分隔符,是否追加
	}

}

3.文件拷贝

package com.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;

/**
 * 
 * 		FileUtils文件拷贝
 *	复制目录(拷贝目录的文件)copyDirectory(srcDir, destDir)
	复制目录到目录(连同目录一同拷贝)copyDirectoryToDirectory(srcDir, destDir)
	复制文件	copyFile(srcFile, destFile)
	复制文件到目录copyFileToDirectory(srcFile, destDir)
	复制URL内容	copyURLToFile(source, destination)
 *
 */
public class IOTest05 {
	public static void main(String[] args) throws IOException {
		//复制文件
		FileUtils.copyFile(new File("p.jpg"), new File("p-copy.jpg"));
		
		//复制文件到目录
		FileUtils.copyFileToDirectory(new File("p.jpg"), new File("lib"));
		
		FileUtils.copyDirectoryToDirectory(new File("lib"), new File("lib2"));
		
		//复制目录(拷贝目录的文件)
		FileUtils.copyDirectory(new File("lib"), new File("lib2"));
		
		//拷贝URL内容
		String url="https://pic2.zhimg.com/v2-7d01cab20858648cbf62333a7988e6d0_qhd.jpg";
		FileUtils.copyURLToFile(new URL(url), new File("marvel.jpg"));
		String datas = IOUtils.toString(new URL("http://www.baidu.com"),"utf-8");
		System.out.println(datas);
				
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值