Web开发配置文件无缓存加载
/** * 读取文件,若文件修改后则重新加载,否则使用缓存 * @param classpath * @return * @throws IOException */public static String getTextByPathNoCached(String classpath) throws IOException {String filePath=getInstance().getClass().getResource(classpath).getFile();File currFile=new File(filePath);InputStream in=null;boolean modifiedB=isModified(classpath,currFile.lastModified());if(modifiedB){//重新加载 in =new FileInputStream(filePath);}else { in = getInstance().getClass().getResourceAsStream(classpath);if (in == null) {throw new FileNotFoundException(classpath + "(系统找不到指定的文件。)");}}byte[] chs = new byte[in.available()];in.read(chs);in.close();return new String(chs, "utf-8");}/** * 判断文件是否修改 * @param keypath * @return */public static boolean isModified(String keypath,long curr){boolean isModified=false;String lastModified=System.getProperty(keypath);if(null==lastModified){System.setProperty(keypath, Long.valueOf(curr).toString());}else {long lastModifiedL=Long.valueOf(System.getProperty(keypath));isModified=curr!=lastModifiedL;}//更新最后一次修改时间/**if(isModified){System.setProperty(keypath, Long.valueOf(curr).toString());}**/log.info("File res:"+keypath+"\t is modified "+isModified);return isModified;}
?