首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

文件工具种FileUtil

2013-10-14 
文件工具类FileUtilpackage org.nit.utilsimport java.io.BufferedReaderimport java.io.Fileimport ja

文件工具类FileUtil

package org.nit.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 <justinlei@gmail.com> * @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;        }    }}

热点排行