package com.xxl.job.core.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; import java.util.ArrayList; import java.util.List; /** * file tool * * @author xuxueli 2017-12-29 17:56:48 */ public class FileUtil { private static Logger logger = LoggerFactory.getLogger(FileUtil.class); /** * delete recursively * * @param root * @return */ public static boolean deleteRecursively(File root) { if (root != null && root.exists()) { if (root.isDirectory()) { File[] children = root.listFiles(); if (children != null) { for (File child : children) { deleteRecursively(child); } } } return root.delete(); } return false; } public static void deleteFile(String fileName) { // file File file = new File(fileName); if (file.exists()) { file.delete(); } } public static void appendFileLine(String fileName, String content) { // file File file = new File(fileName); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { logger.error(e.getMessage(), e); return; } } // content if (content == null) { content = ""; } content += "\r\n"; // append file content FileOutputStream fos = null; try { fos = new FileOutputStream(file, true); fos.write(content.getBytes("utf-8")); fos.flush(); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { logger.error(e.getMessage(), e); } } } } public static List loadFileLines(String fileName){ List result = new ArrayList<>(); // valid log file File file = new File(fileName); if (!file.exists()) { return result; } // read file StringBuffer logContentBuffer = new StringBuffer(); int toLineNum = 0; LineNumberReader reader = null; try { //reader = new LineNumberReader(new FileReader(logFile)); reader = new LineNumberReader(new InputStreamReader(new FileInputStream(file), "utf-8")); String line = null; while ((line = reader.readLine())!=null) { if (line!=null && line.trim().length()>0) { result.add(line); } } } catch (IOException e) { logger.error(e.getMessage(), e); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { logger.error(e.getMessage(), e); } } } return result; } }