工具类——FileUtils
生活随笔
收集整理的這篇文章主要介紹了
工具类——FileUtils
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用apache的commons-io包下的FileUtils,下載地址點擊這里。官方API文檔點擊這里,我篩選了一些常用方法:
創建
| 創建文件(如果文件存在,將更新文件的創建時間) | touch |
| 創建目錄(支持多級創建) | forceMkdir |
刪除
| 刪除或(多級)目錄 | deleteQuietly |
移動
| 移動文件到目錄中 | moveFileToDirectory |
| 移動目錄到目錄中 | moveDirectoryToDirectory |
復制
| 復制文件到目錄中 | copyFileToDirectory |
| 復制目錄到目錄中 | copyDirectoryToDirectory |
| 保存URL中信息到文件中 | copyURLToFile |
IO操作
| 獲取文件輸入流 | openInputStream |
| 獲取文件輸出流 | openOutputStream |
| 讀取內容到串 | readFileToString |
| 按行讀取內容到串集合 | readLines |
| 按行寫入文件 | writeLines |
| 獲取文件輸出流 | openOutputStream |
文件大小
| 獲取文件大小 | sizeOf |
| 字節大小可視化(轉化為帶單位的形式) | byteCountToDisplaySize |
文件比較
| 文件內容是否相同 | contentEquals |
| 是否比指定文件最后修改時間新 | isFileNewer |
| 是否比指定文件最后修改時間舊 | isFileOlder |
| 判斷文件是否是符號鏈接 | isSymlink |
查找文件
| 查找方法 | listFiles |
下面是自己補充了一些文件操作函數:
(1)文件重命名
/*** 重命名文件* @author jitwxs* @version 創建時間:2018年2月27日 上午10:59:33 * @param path 目錄路徑* @param oldName 源文件名* @param newName 目標文件名* @return*/public static boolean renameFile(String path, String oldName, String newName) {//新的文件名和以前文件名不同時,才有必要進行重命名if (!oldName.equals(newName)) {File oldfile = new File(path + "/" + oldName);File newfile = new File(path + "/" + newName);if (!oldfile.exists()) {System.out.println("重命名文件失敗," + oldName +"不存在!");return false;}//若在該目錄下已經有一個文件和新文件名相同,則不允許重命名if (newfile.exists()) {System.out.println("重命名文件失敗," + newName + "已經存在!");return false;} else {oldfile.renameTo(newfile);}}return true;}(2)裁剪圖片為指定大小
/*** 調整圖片大小* @param srcImgPath 原圖片路徑* @param distImgPath 轉換大小后圖片路徑* @param width 轉換后圖片寬度* @param height 轉換后圖片高度* @author jitwxs* @since 2018/6/17 21:54*/public static void resizeImage(String srcImgPath, String distImgPath, int width, int height) throws IOException {File srcFile = new File(srcImgPath);Image srcImg = ImageIO.read(srcFile);BufferedImage buffImg = null;buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);buffImg.getGraphics().drawImage(srcImg.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0,0, null);ImageIO.write(buffImg, "JPEG", new File(distImgPath));}(3)獲取視頻縮略圖(指定幀)
依賴:
<dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>0.8</version> </dependency> /*** 獲取指定視頻的幀并保存為圖片至指定目錄** @param videofile 源視頻文件路徑* @param framefile 截取幀的圖片存放路徑* @throws Exception*/ public static void fetchFrame(String videofile, String framefile) throws Exception {long start = System.currentTimeMillis();File targetFile = new File(framefile);FFmpegFrameGrabber ff = new FFmpegFrameGrabber(videofile);ff.start();int lenght = ff.getLengthInFrames();int i = 0;Frame f = null;while (i < lenght) {// 過濾前5幀,避免出現全黑的圖片,依自己情況而定f = ff.grabFrame();if ((i > 5) && (f.image != null)) {break;}i++;}IplImage img = f.image;int owidth = img.width();int oheight = img.height();// 對截取的幀進行等比例縮放int width = 800;int height = (int) (((double) width / owidth) * oheight);BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);bi.getGraphics().drawImage(f.image.getBufferedImage().getScaledInstance(width, height, Image.SCALE_SMOOTH),0, 0, null);ImageIO.write(bi, "jpg", targetFile);//ff.flush();ff.stop(); }總結
以上是生活随笔為你收集整理的工具类——FileUtils的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: video from html5
- 下一篇: 诗歌rails 之自定义Helper模块