FileUtil.java package com.myUtil;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;i
package com.myUtil; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.List; public class FileUtil { /** * 删除指定文件或文件夹 * @param 文件或文件夹 */ public static void deleteFile(File file) { if (file != null && file.exists()) { if (file.isDirectory()) { File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { deleteFile(files[i]); } } file.delete(); } } /** * 删除目录下的所有文件和文件夹 * @param 目录 */ public static void deleteSubFiles(File file) { if (file != null && file.exists()) { if (file.isDirectory()) { File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { deleteFile(files[i]); } } } } /** * 往文件末尾添加一行,使用默认字符集 * @param 文件 * @param 添加的内容 */ public static void appendTextLine(File file, String content) { appendText(file, content + "\n"); } /** * 往文件末尾添加一行,可以指定字符集 * @param 文件 * @param 字符集 * @param 添加的内容 */ public static void appendTextLine(File file, String charset, String content) { appendText(file, charset, content + "\n"); } public static void appendText(File file, String content) { appendText(file, null, content); } public static void appendText(File file, String charset, String content) { try { if (charset == null) { FileWriter fw = new FileWriter(file, true); fw.append(content); fw.close(); } else { BufferedWriter bw = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(file, true), charset)); bw.append(content); bw.close(); } } catch (Exception e) { e.printStackTrace(); } } /** * 按行读取文件,返回字符串数组。使用默认字符集 * @param 文件 * @return 返回字符串数组,每行一个字符串 */ public static String[] readFileAsStringArrayIgnoreBlankLine(File file) { return readFileAsStringArrayIgnoreBlankLine(file, null); } /** * 按行读取文件,返回字符串数组。可以指定字符集 * @param 文件 * @param 字符集 * @return 返回字符串数组,每行一个字符串 */ public static String[] readFileAsStringArrayIgnoreBlankLine(File file, String charset) { Listlist = new ArrayList (); try { BufferedReader br = null; if (charset == null) { br = new BufferedReader(new FileReader(file)); } else { br = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset)); } String line = null; while ((line = br.readLine()) != null) { if (line.trim().length() > 0) { list.add(line); } } br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return list.toArray(new String[list.size()]); } public static File getDesFile(File srcFile) { File desFile = null; if (srcFile.exists() && srcFile != null) { if (srcFile.getName().indexOf(".") != -1) { String srcFilePath = srcFile.getAbsolutePath(); String desFilePath = srcFilePath.substring(0, srcFilePath.lastIndexOf(".")) + "_after" + srcFilePath.substring(srcFilePath.lastIndexOf(".")); desFile = new File(desFilePath); } else { desFile = new File(srcFile.getAbsoluteFile() + ".after"); } } else { System.out.println("Please check the source file..."); } return desFile; } /** * 列出目录中包含指定字符串的所有文件 * @param 目录 * @param 包含的字符串 * @return 返回文件数组 */ public static File[] getFilesContains(File file, final String subString) { File[] files = file.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { if (name.contains(subString)) { return true; } return false; } }); return files; } }