package com.wx.application.util;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;

import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;

public class FileUitls {

    /**
     * 在默认临时文件目录下创建临时文件，创建后的文件名为 prefix[Randon].suffix。
     * 默认临时文件目录由系统属性 {@code java.io.tmpdir} 指定。
     * 在 UNIX 系统上，此属性的默认值通常是 {@code "tmp"} 或 {@code "vartmp"}；
     * 在 Microsoft Windows 系统上，它通常是 {@code "C:\\WINNT\\TEMP"}。
     * 调用 Java 虚拟机时，可以为该系统属性赋予不同的值，但不保证对该属性的编程更改对该方法使用的临时目录有任何影响。
     *
     * @param suffix    后缀，如果null则使用默认.tmp
     * @param isReCreat 是否重新创建文件（删掉原来的，创建新的）
     * @return 临时文件
     * @throws IORuntimeException IO异常
     */
    public static File createTempFile(String suffix, boolean isReCreat) throws IOException {
        return FileUtil.createTempFile(suffix,true);
    }

    /**
     * 追加文本到文件并换行
     * @param file
     * @param json
     * @throws Exception
     */
    public static void writeFile(File file, String json)throws Exception{
        //写入中文字符时解决中文乱码问题
		BufferedWriter bw=new BufferedWriter(new java.io.FileWriter(file,true));
		bw.write(json+"\t\n");
		//注意关闭的先后顺序，先打开的后关闭，后打开的先关闭
		bw.close();
    }

    /**
     * 删除文件
     * @param file
     * @return
     */
    public static boolean deleteFile(File file) {
        // 如果文件路径所对应的文件存在，并且是一个文件，则直接删除
        if (file.exists() && file.isFile()) {
            return file.delete();
        } else {
            return false;
        }
    }
}
