package com.louis.kitty.backup.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class FileUtils {
	
	
	/**
	 * 读取txt文件的内容
	 * @param file 想要读取的文件路径
	 * @return 返回文件内容
	 */
	public static String readFile(String file){
		return readFile(new File(file));
	}
	
    /**
     * 读取txt文件的内容
     * @param file 想要读取的文件对象
     * @return 返回文件内容
     */
    public static String readFile(File file){
        StringBuilder result = new StringBuilder();
        try{
            BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
            String s = null;
            while((s = br.readLine())!=null){
            	//使用readLine方法,一次读一行
                result.append(System.lineSeparator() + s);
            }
            br.close();    
        }catch(Exception e){
            e.printStackTrace();
        }
        return result.toString();
    }
    
    /**
	 * 递归删除文件
	 * @param file
	 */
	public static void deleteFile(File file) {
	    // 判断是否是一个目录, 不是的话跳过, 直接删除; 如果是一个目录, 先将其内容清空.
	    if(file.isDirectory()) {
	        // 获取子文件/目录
	        File[] subFiles = file.listFiles();
	        // 遍历该目录
	        for (File subFile : subFiles) {
	            // 递归调用删除该文件: 如果这是一个空目录或文件, 一次递归就可删除. 
	        	// 如果这是一个非空目录, 多次递归清空其内容后再删除
	            deleteFile(subFile);
	        }
	    }
	    // 删除空目录或文件
	    file.delete();
	}
	
	/**
	 * 获取项目根路径
	 * @return
	 */
	public static String getProjectPath() {
		String classPath = getClassPath();
		return new File(classPath).getParentFile().getParentFile().getAbsolutePath();
	}

	/**
	 * 获取类路径
	 * @return
	 */
	public static String getClassPath() {
		String classPath = FileUtils.class.getClassLoader().getResource("").getPath();
		return classPath;
	}
	
	public static void main(String[] args){
//        File file = new File("D:/errlog.txt");
//        System.out.println(readFile(file));
        
        System.out.println(getClassPath());
        
        System.out.println(getProjectPath());
        
        
    }
}