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);
				
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章