FileTool.java 4.5 KB
package com.tianbo.util.IO;

import com.tianbo.util.Date.DateUtil;
import com.tianbo.util.Helper;
import org.apache.commons.io.FileUtils;

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


public final class FileTool {
    private final static String errorRootDirectory = "errorLogs";//错误的根目录名
    private final static String xmlRootDirectory = "xmlLog"; //记录已收到的报文目录
    private final static String Cherector = "UTF-8";

    /**
     * 写入文件
     * @param path 二级目录
     * @param content 写入内容
     * @param rightOrwrong 是写入错误记录目录还是记录目录
     */
    public static void writeFile(String path,String content,boolean rightOrwrong){
        StringBuffer stringBuffer = new StringBuffer();

        if (rightOrwrong){
            stringBuffer.append(xmlRootDirectory).append("/").append(path).append("/").append(DateUtil.getToday()).append("/").append(Helper.getUUID()).append(".log");
        }else {
            stringBuffer.append(errorRootDirectory).append("/").append(path).append("/").append(DateUtil.getToday()).append("/").append(Helper.getUUID()).append(".log");
        }

        File file = new File(stringBuffer.toString());

        try{
            FileUtils.writeStringToFile(file,content,Cherector);
        }catch (IOException e){
            e.printStackTrace();
        }

    }
    public static String readfile(File file) throws IOException{
        String fileToString = FileUtils.readFileToString(file, "utf-8");
        return fileToString;
    }

    public static List<File> readDirectoryFiles(File dir){
        List<File> files = new ArrayList<File>();
        if (dir.exists() && dir.isDirectory()) {
             files = (List<File>) FileUtils.listFiles(dir, new String[]{"xml"}, false);
        }
        return files;
    }

    /**
     * 获取目录下的所有文件
     * @param dir
     * @return
     */
    public static List<File> readAllDirectoryFiles(File dir){
        List<File> files = new ArrayList<File>();
        if (dir.exists() && dir.isDirectory()) {
            files = (List<File>) FileUtils.listFiles(dir, null, false);
        }
        return files;
    }

    public static void writeWaybill(String path,String content,String waybillNo){
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append(xmlRootDirectory).append("/").append(path).append("/").append(DateUtil.getToday()).append("/").append(waybillNo).append(".log");
        File file = new File(stringBuffer.toString());
        try{
            FileUtils.writeStringToFile(file,content,Cherector);
        }catch (IOException e){
            e.printStackTrace();
        }

    }

    public static void writeFileToBak(String content){
        String bakDir = readProperties("bakDirectory");
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append(bakDir).append("/").append(Helper.getUUID()).append(".xml");

        File file = new File(stringBuffer.toString());

        try{
            FileUtils.writeStringToFile(file,content,Cherector);
        }catch (IOException e){
            e.printStackTrace();
        }

    }

    public static void writeFileToBak(String content,String bakDirectory){
        String bakDir = readProperties("bakDirectory");
        if (bakDirectory!=null && bakDirectory.length()>0){
            bakDir = bakDirectory;
        }
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append(bakDir).append("/").append(Helper.getUUID()).append(".xml");

        File file = new File(stringBuffer.toString());

        try{
            FileUtils.writeStringToFile(file,content,Cherector);
        }catch (IOException e){
            e.printStackTrace();
        }

    }

    /**
     * 读取根目录下的config文件夹下的配置文件的节点信息,返回节点的值
     * @param key 配置文件节点
     * @return 返回节点的值
     */
    public static String readProperties(String key){
        Properties properties = new Properties();
        String value = "";
        try{
            //读取根目录下的config文件夹下的配置文件
            BufferedReader bufferedReader = new BufferedReader(new FileReader("config/config.properties"));
            properties.load(bufferedReader);
            //获取key对应的value值
            value=  properties.getProperty(key);
        }catch (Exception e){
            e.printStackTrace();
        }
        return  value;

    }


}