java惯用文件操作类
java常用文件操作类
import java.io.File; import java.io.FileOutputStream; import java.net.URISyntaxException; import java.net.URL; /** * 创建日期:Feb 24, 2011 * Title: * Description:对本文件的详细描述,原则上不能少于50字 * @author * @mender:(文件的修改者,文件创建者之外的人) * @version 1.0 * Remark:认为有必要的其他信息 */ public class FileUtil { /** * 输出路径时统一使用的分隔符 */ public static String filePathSepChar="/"; /** * * 功能:获取当前运行路径 * 作者: * 创建日期:Feb 24, 2011 * 修改者: mender * 修改日期: modifydate * @return */ public static String getRunDicPath() { String runDicPath=""; URL runDirURL=FileUtil.class.getProtectionDomain().getCodeSource().getLocation(); if(runDirURL!=null) { File runDir=null; try { runDir = new File(runDirURL.toURI()); if(runDir!=null&&runDir.getParent()!=null) { runDicPath=runDir.getParent(); System.out.println("运行目录:"+runDicPath); } } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return runDicPath; } /** * * 功能:判断指定的文件路径是否存在 * 作者: * 创建日期:Feb 24, 2011 * 修改者: mender * 修改日期: modifydate * @param filePath * @return */ public static boolean isExitPath(String filePath) { boolean isExit=false; if(filePath!=null&&filePath.length()>0) { File file=new File(filePath); if(file!=null&&file.exists()) { isExit=true; } } return isExit; } /** * * 功能:判断指定的路径是否是一个存在的目录 * 作者: * 创建日期:Feb 24, 2011 * 修改者: mender * 修改日期: modifydate * @param dicPath * @return */ public static boolean isDicPath(String dicPath) { boolean isExit=false; if(isExitPath(dicPath)) { File file=new File(dicPath); if(file!=null&&file.exists()&&file.isDirectory()) { isExit=true; } } return isExit; } /** * * 功能:判断指定的路径是否是一个存在的文件 * 作者: * 创建日期:Feb 24, 2011 * 修改者: mender * 修改日期: modifydate * @param dicPath * @return */ public static boolean isFilePath(String filePath) { boolean isExit=false; if(isExitPath(filePath)) { File file=new File(filePath); if(file!=null&&file.exists()&&file.isFile()) { isExit=true; } } return isExit; } /** * * 功能:获取相对于上级目录(可能不是直接的父目录)的子文件路径 * 作者: * 创建日期:Feb 24, 2011 * 修改者: mender * 修改日期: modifydate * @return */ public static String getRelativePath(String parentPath,String childPath) { String relativePath=""; if(isExitPath(parentPath)&&isExitPath(childPath)) { File childFile=new File(childPath); File parentFile=new File(parentPath); if(parentFile!=null&&childFile!=null) { relativePath=childPath.substring(parentPath.length()); //如果文件路径以分隔符开头,则去掉分隔符 if(relativePath.startsWith(File.separator)) { relativePath=relativePath.substring(1,relativePath.length()); } String replaceChar=""; if(File.separator.equals("\\")) { replaceChar="\\\\"; //将文件分隔符替换为指定的分隔符 relativePath=relativePath.replaceAll(replaceChar, filePathSepChar); } } } return relativePath; } /** * * 功能:获取相对于上级目录(可能不是直接的父目录)的子文件路径 * 作者: * 创建日期:Feb 24, 2011 * 修改者: mender * 修改日期: modifydate * @return */ public static String getRelativePath(File parentFile,File childFile) { String relativePath=""; if(parentFile!=null&&childFile!=null) { String childPath=childFile.getAbsolutePath(); String parentPath=parentFile.getAbsolutePath(); relativePath=childPath.substring(parentPath.length()); //如果文件路径以分隔符开头,则去掉分隔符 if(relativePath.startsWith(File.separator)) { relativePath=relativePath.substring(1,relativePath.length()); } String replaceChar=""; if(File.separator.equals("\\")) { replaceChar="\\\\"; //将文件分隔符替换为指定的分隔符 relativePath=relativePath.replaceAll(replaceChar, filePathSepChar); } } return relativePath; } /** * * 功能:在指定的infoFile添加info * 作者: * 创建日期:Feb 24, 2011 * 修改者: mender * 修改日期: modifydate */ public static void appendMd5Info(File infoFile,String info) { if(infoFile!=null&&info!=null&&info.length()>0) { try { //如果指定文件不存在,则先创建文件 if (!infoFile.exists()) { infoFile.createNewFile(); } //创建append输出流 FileOutputStream fos=new FileOutputStream(infoFile,true); fos.write(info.getBytes()); fos.flush(); fos.close(); } catch (Exception e) { System.err.println("appendMd5Info 添加信息出现异常:"+e.toString()); } } } }