package paas.storage.distributedcolumndatabase.management; import java.io.*; import java.util.ArrayList; import java.util.List; /** * class_name: FileDirUtil * describe: 获取文件夹里面的文件并删除文件夹 * create_time: 17:45 **/ public class FileDirUtil { /** * * @param file * @return 成功返回:以part开头的文件列表 */ public static List<String> getFileList(File file) { List<String> result = new ArrayList<String>(); if (!file.isDirectory()) { System.out.println(file.getAbsolutePath()); result.add(file.getAbsolutePath()); } else { File[] directoryList = file.listFiles(new FileFilter() { public boolean accept(File file) { if (file.isFile() && file.getName().indexOf("part") == 0) { return true; } else { return false; } } }); for (int i = 0; i < directoryList.length; i++) { result.add(directoryList[i].getPath()); } } return result; } /** * 删除单个文件 * @param sPath 被删除文件path * @return 删除成功返回true,否则返回false */ public static boolean deleteFile(String sPath) { boolean flag = false; File file = new File(sPath); // 路径为文件且不为空则进行删除 if (file.isFile() && file.exists()) { file.delete(); flag = true; } return flag; } public static boolean deleteDirectory(String sPath) { //如果sPath不以文件分隔符结尾,自动添加文件分隔符 if (!sPath.endsWith(File.separator)) { sPath = sPath + File.separator; } File dirFile = new File(sPath); //如果dir对应的文件不存在,或者不是一个目录,则退出 if (!dirFile.exists() || !dirFile.isDirectory()) { return false; } boolean flag = true; //删除文件夹下的所有文件(包括子目录) File[] files = dirFile.listFiles(); for (int i = 0; i < files.length; i++) { //删除子文件 if (files[i].isFile()) { flag = deleteFile(files[i].getAbsolutePath()); if (!flag) break; } //删除子目录 else { flag = deleteDirectory(files[i].getAbsolutePath()); if (!flag) break; } } if (!flag) return false; //删除当前目录 if (dirFile.delete()) { return true; } else { return false; } } public static void saveOutPath(String outPath,String outType) throws IOException{ File f = new File(outPath); List<String> list2 = new ArrayList<String>(); list2 = FileDirUtil.getFileList(f); String str = ""; for (String l : list2) { BufferedReader br = new BufferedReader(new FileReader(new File(l))); String s = ""; while ((s = br.readLine()) != null) { str += s + "\r\n"; // "\r\n" 保存文件时才可以换行 } br.close(); } System.out.println("file: " + str); String outPath2 = outPath + "." + outType; if(new File(outPath).exists()) { FileDirUtil.deleteDirectory(outPath); /*if (FileDirUtil.deleteDirectory(outPath)) { System.out.println("删除已经存在的文件夹!" + outPath); } else { System.out.println("删除不了!!!" + outPath); }*/ } if (new File(outPath2).exists()) { FileDirUtil.deleteFile(outPath); /* if (FileDirUtil.deleteFile(outPath)) { System.out.println("删除已经存在的文件!"); } else { System.out.println("删除不了!!!" + outPath); }*/ } File fileText = new File(outPath2); FileWriter fileWriter = new FileWriter(fileText); fileWriter.write(str); fileWriter.close(); } }
补 上一个 spark导出hbase表信息的工具类(获取文件夹文件信息、删除文件夹、保存文件)
猜你喜欢
转载自blog.csdn.net/true1cc/article/details/79161110
今日推荐
周排行