java Source

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            14 Posts :: 24 Stories :: 8 Comments :: 0 Trackbacks
          /*
           * FileUtil.java
           * Copyright (C) 2007-3-19  <JustinLei@gmail.com>
           *
           *        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 <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();
              }
              
              
          /**
               * 列出所有當(dāng)前層的文件和目錄
               * 
               * 
          @param dir            目錄名稱
               * 
          @return fileList    列出的文件和目錄
               
          */
              
          public static File[] ls(String dir) {
                  
          return new File(dir).listFiles();
              }
              
              
          /**
               * 根據(jù)需要創(chuàng)建文件夾
               * 
               * 
          @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         目標(biāo)文件
               * 
          @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();
              }
              
              
          /**
               * 把屬性文件轉(zhuǎn)換成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;
              }
              
              
          /**
               * 把屬性文件轉(zhuǎn)換成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;
              }
              
              
          /**
               * 把文本文件轉(zhuǎn)換成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;
                  }
              }
          }
          posted on 2009-12-18 16:40 JustinLei 閱讀(2316) 評論(1)  編輯  收藏

          Feedback

          # re: 文件工具類FileUtil 2009-12-19 11:09 marten
          Good  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 灵宝市| 云霄县| 昌吉市| 阳曲县| 榕江县| 诸暨市| 新河县| 茂名市| 昔阳县| 瑞昌市| 定远县| 仙桃市| 河西区| 东阳市| 宜阳县| 曲阳县| 望都县| 馆陶县| 定兴县| 车致| 黄山市| 平阴县| 新余市| 玛纳斯县| 广昌县| 于都县| 迭部县| 五峰| 仙桃市| 同江市| 英超| 德保县| 外汇| 横山县| 徐汇区| 平乐县| 奉新县| 元阳县| 清原| 仙居县| 靖边县|