Commons-io文件操作

efbb 9年前發布 | 952 次閱讀 Java

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;

/**

  • 文件操作工具類
  • @version 1.0 2013/07/16 / public class FileUtil {

    /**

    • 復制文件或者目錄,復制前后文件完全一樣。
    • @param resFilePath 源文件路徑
    • @param distFolder 目標文件夾
    • @IOException 當操作發生異常時拋出
      */ public static void copyFile(String resFilePath, String distFolder)
       throws IOException {  
      
      File resFile = new File(resFilePath);
      File distFile = new File(distFolder);
      if (resFile.isDirectory()) { // 目錄時
       FileUtils.copyDirectoryToDirectory(resFile, distFile);  
      
      } else if (resFile.isFile()) { // 文件時
       // FileUtils.copyFileToDirectory(resFile, distFile, true);  
       FileUtils.copyFileToDirectory(resFile, distFile);  
      
      }
      }
/**  
 * 刪除一個文件或者目錄  
 * @param targetPath     文件或者目錄路徑  
 * @IOException 當操作發生異常時拋出  
 */
public static void deleteFile(String targetPath) throws IOException {  
    File targetFile = new File(targetPath);  
    if (targetFile.isDirectory()) {  
        FileUtils.deleteDirectory(targetFile);  
    } else if (targetFile.isFile()) {  
        targetFile.delete();  
    }  
}  

/**  
 * 將字符串寫入指定文件(當指定的父路徑中文件夾不存在時,會最大限度去創建,以保證保存成功!)  
 *   
 * @param res         原字符串  
 * @param filePath    文件路徑  
 * @return 成功標記  
 * @throws IOException 
 */
public static boolean string2File(String res, String filePath) throws IOException {  
    boolean flag = true;  
    BufferedReader bufferedReader = null;  
    BufferedWriter bufferedWriter = null;  
    try {  
        File distFile = new File(filePath);  
        if (!distFile.getParentFile().exists()) {// 不存在時創建  
            distFile.getParentFile().mkdirs();  
        }  
        bufferedReader = new BufferedReader(new StringReader(res));  
        bufferedWriter = new BufferedWriter(new FileWriter(distFile));  
        char buf[] = new char[1024]; // 字符緩沖區  
        int len;  
        while ((len = bufferedReader.read(buf)) != -1) {  
            bufferedWriter.write(buf, 0, len);  
        }  
        bufferedWriter.flush();  
        bufferedReader.close();  
        bufferedWriter.close();  
    } catch (IOException e) {  
        flag = false;  
        throw e;
    }  
    return flag;  
}  

/**  
 * 取得指定文件內容 
 *   
 * @param res         原字符串  
 * @param filePath    文件路徑  
 * @return 成功標記  
 * @throws IOException 
 */
public static List<String> getContentFromFile(String filePath) throws IOException {  
    List<String> lists = null;
    try {  
        if(!(new File(filePath).exists())){
            return new ArrayList<String>();
        }
        lists = FileUtils.readLines(new File(filePath), Charset.defaultCharset());
    } catch (IOException e) {  
         throw e;
    }  
    return lists;  
}  

/**
 * 給指定文件追加內容
 * @param filePath
 * @param contents
 */
public static void addContent(String filePath, List<String> contents) throws IOException { 
    try {
        FileUtils.writeLines(new File(filePath), contents);
    } catch (IOException e) {
         throw e;
    }
}


}

</pre>

 本文由用戶 efbb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!