java FileUtil文件工具類源碼

package com.util;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class FileUtil {
	public static File createDirectory(String path){
		File file=new File(path);
		return FileUtil.createDirectory(file);
	}
	public static File createDirectory(File file){
		file.mkdirs();
		return file;
	}
	public static File createFile(String path){
		path=FileUtil.treatFilePath(path);
		path=Util.trimStartString(path, "/");
		if(FileUtil.isDirectory(path)==true){
			return FileUtil.createDirectory(path);
		}
		path= path==null?"":path;
		File file=new File(path);
		return FileUtil.createFile(file);
	}
	public static File createFile(File file) {
		if(FileUtil.isDirectory(file)==true){
			return FileUtil.createDirectory(file);
		}
		File parentFile = file.getParentFile();
		if (parentFile.exists() == false) {
			parentFile.mkdirs();
		}
		if (file.exists() == false) {
			try {
				file.createNewFile();
			} catch (IOException e) {
				String path=file.getAbsolutePath();
			}
		}
		return file;
	}
	public static boolean isDirectory(File file){
		String path=file.getAbsolutePath();
		return FileUtil.isDirectory(path);
	}
	public static boolean isDirectory(String path){
		path = path==null?"":path;
		if(path.equals("")){
			return true;
		}
		boolean isDir=false;
		path=FileUtil.treatFilePath(path);
		if(path.indexOf("/")!=-1){
			String lines[]=path.split("/");
			if(lines.length==0){
				return true;
			}
			String last=lines[lines.length-1];
			isDir= last.indexOf(".")>0?false:true;
		}
		return isDir;
	}
	public static File initFile(File file) {
		return FileUtil.writeToFile("", file, false);
	}
	public static File writeToFile(File srcFile,File destFile) {
		List<String> list = FileUtil.readFile(srcFile);
		return FileUtil.writeToFile(list, destFile);
	}
	public static File writeToFile(String[] lines, File file) {
		List<String> list = new ArrayList<String>();
		for (String line : lines) {
			list.add(line);
		}
		return FileUtil.writeToFile(list, file);
	}
	public static File writeToFile(List<String> list, File file) {
		boolean isFirstLine = true;
		if(list.size()==0){
			FileUtil.initFile(file);
			return file;
		}
		for (String line : list) {
			if (isFirstLine == true) {
				file=writeToFile(line, file, false);
				isFirstLine = false;
			} else {
				file=appendToFile(line, file);
			}
		}
		return file;
	}
	public static File writeToFile(String line, File file, boolean isAppend) {
		file=FileUtil.createFile(file);
		if (line == null) {
			return file;
		}
		try {
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
					new FileOutputStream(file, isAppend), "utf-8"));
			bw.write(line);
			bw.flush();
			if (line.length() != 0) {// line no equals ""
				bw.newLine();
				bw.flush();
			}
			bw.close();
		} catch (UnsupportedEncodingException e) {
			return file;
		} catch (FileNotFoundException e) {
			return file;
		} catch (IOException e) {
			return file;
		}
		return file;
	}


	public static File appendToFile(List<String> list, File file) {
		for (String line : list) {
			file=FileUtil.appendToFile(line, file);
		}
		return file;
	}
	public static File appendToFile(String line, File file) {
		return writeToFile(line, file, true);
	}

	public static List<String> readFile(File file) {
		file=FileUtil.createFile(file);
		List<String> list = new ArrayList<String>();
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(
					new FileInputStream(file), "utf-8"));
			String line = br.readLine();
			while (line != null) {
				list.add(line);
				line = br.readLine();
			}
			br.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return list;
	}
	public static String treatFilePath(String path){
		path=path.replace("//", "/");
		path=path.replace("\\", "/");
		return path;
	}
}

 

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