年底收藏系列-文件工具类FileUtil

 

/* * FileUtil.java * Copyright (C) 2007-3-19 <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ package org.lambdasoft.utils; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.Random; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * 文件工具类 * * @author TangLei <[email protected]> * @date 2009-2-24 */ public class FileUtil { private static Log log = LogFactory.getLog(FileUtil.class); private FileUtil() {} /** * 获取随机的文件名称 * @param seed 随机种子 * @return */ public static String getRandomFileName(String seed) { byte[] ra = new byte[100]; new Random().nextBytes(ra); StringBuilder build = new StringBuilder(""); for (int i = 0; i < ra.length; i++) { build.append(Byte.valueOf(ra[i]).toString()); } String currentDate = Long.valueOf(new Date().getTime()).toString(); seed = seed + currentDate + build.toString(); return EncryptUtils.getMD5ofStr(seed).toLowerCase(); } /** * 列出所有当前层的文件和目录 * * @param dir 目录名称 * @return fileList 列出的文件和目录 */ public static File[] ls(String dir) { return new File(dir).listFiles(); } /** * 根据需要创建文件夹 * * @param dirPath 文件夹路径 * @param del 存在文件夹是否删除 */ public static void mkdir(String dirPath,boolean del) { File dir = new File(dirPath); if(dir.exists()) { if(del) dir.delete(); else return; } dir.mkdirs(); } /** * 删除文件和目录 * * @param path * @throws Exception */ public static void rm(String path) throws Exception{ if(log.isDebugEnabled()) log.debug("需要删除的文件: " + path); File file = new File(path); if(!file.exists()) { if(log.isWarnEnabled()) log.warn("文件<" + path + ">不存在"); return; } if(file.isDirectory()) { File[] fileList = file.listFiles(); if(fileList == null || fileList.length == 0) { file.delete(); } else { for (File _file : fileList) { rm(_file.getAbsolutePath()); } } file.delete(); } else { file.delete(); } } /** * 移动文件 * * @param source 源文件 * @param target 目标文件 * @param cache 文件缓存大小 * @throws Exception */ public static void mv(String source,String target,int cache) throws Exception { if(source.trim().equals(target.trim())) return; byte[] cached = new byte[cache]; FileInputStream fromFile = new FileInputStream(source); FileOutputStream toFile = new FileOutputStream(target); while(fromFile.read(cached) != -1) { toFile.write(cached); } toFile.flush(); toFile.close(); fromFile.close(); new File(source).deleteOnExit(); } /** * 把属性文件转换成Map * * @param propertiesFile * @return * @throws Exception */ public static final Map<String, String> getPropertiesMap(String propertiesFile) throws Exception{ Properties properties = new Properties(); FileInputStream inputStream = new FileInputStream(propertiesFile); properties.load(inputStream); Map<String, String> map = new HashMap<String, String>(); Set<Object> keySet = properties.keySet(); for (Object key : keySet) { map.put((String)key, properties.getProperty((String)key)); } return map; } @SuppressWarnings("unchecked") public static final Map<String, String> getPropertiesMap(Class clazz,String fileName) throws Exception{ Properties properties = new Properties(); InputStream inputStream = clazz.getResourceAsStream(fileName); if(inputStream == null) inputStream = clazz.getClassLoader().getResourceAsStream(fileName); properties.load(inputStream); Map<String, String> map = new HashMap<String, String>(); Set<Object> keySet = properties.keySet(); for (Object key : keySet) { map.put((String)key, properties.getProperty((String)key)); } return map; } /** * 把属性文件转换成Map * * @param inputStream * @return * @throws Exception */ public static final Map<String, String> getPropertiesMap(InputStream inputStream) throws Exception{ Properties properties = new Properties(); properties.load(inputStream); Map<String, String> map = new HashMap<String, String>(); Set<Object> keySet = properties.keySet(); for (Object key : keySet) { map.put((String)key, properties.getProperty((String)key)); } return map; } /** * 把文本文件转换成String * * @param fullPath * @return * @throws Exception */ public static String readFile(String fullPath) throws Exception{ BufferedReader reader = new BufferedReader(new FileReader(fullPath)); if(reader == null) return null; StringBuilder builder = new StringBuilder(""); String line = null; while((line = reader.readLine()) != null) { builder.append(line + "/n"); } return builder.toString(); } /** * 获取资源文件流 * * @param clazz * @param name * @return */ @SuppressWarnings("unchecked") public static InputStream getResourceAsStream(Class clazz,String name) { try { InputStream inputStream = clazz.getResourceAsStream(name); if(inputStream == null) inputStream = clazz.getClassLoader().getResourceAsStream(name); return inputStream; } catch (Exception e) { if(log.isWarnEnabled()) log.warn("获取资源文件失败", e); return null; } } }

 

 

你可能感兴趣的:(exception,properties,String,File,工具)