日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

工具类——FileUtils

發布時間:2023/12/10 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工具类——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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。