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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java常用类(三):FileUtils类

發布時間:2023/12/10 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java常用类(三):FileUtils类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1. 什么是FileUtils類?

1.1 什么是Common IO

1.2 添加相關的maven依賴

1.3 什么是FileUtils

2. FileUtils類的常用方法

2.1.?復制文件夾?copyDirectory

2.2?復制文件?copyFile

2.3?把字符串寫入文件?writeStringToFile

2.4?把字節數組寫入文件?writeByteArrayToFile

2.5?把集合里面的內容寫入文件?writeLines

2.6?往文件里面寫內容?write

2.7?文件移動?moveDirectory, moveFile,?moveToDirectory

2.8?清空和刪除文件夾?deleteDirectory

2.9?創建文件夾?forceMkdir,?forceMkdirParent

2.10?獲取文件輸入/輸出流?openInputStream,?openOutputStream

2.11?讀取文件?readFileToString,?readLines,?readFileToByteArray

2.12?測試兩個文件的修改時間?isFileNewer,?isFileOlder

2.13?文件/文件夾的迭代?iterateFiles,?iterateFilesAndDirs,?lineIterator...

2.14?其他一些常用方法

3. FileUtils類的常用常量


1. 什么是FileUtils類?

1.1 什么是Common IO

Common IO是一個工具庫,用來幫助開發IO功能。

包含了:IOUtils,FileUtils,FilenameUtils等多個類。

1.2 添加相關的maven依賴

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version> </dependency>

1.3 什么是FileUtils

FileUtils存在于Common工具庫中。包含一些工具類,它們基于File對象工作,包括讀,寫,拷貝和比較文件。

2. FileUtils類的常用方法

2.1.?復制文件夾?copyDirectory

(1)FileUtils.copyDirectory(File srcDir, File destDir)

// 復制文件夾(文件夾里面的文件內容也會復制)

(2)FileUtils.copyDirectory(File srcDir, File destDir, FileFilter filter)

// 復制文件夾,帶有文件過濾功能

(3)FileUtils.copyDirectoryToDirectory(File srcDir, File destDir)

// 以子目錄的形式將文件夾復制到到另一個文件夾下

2.2?復制文件?copyFile

(1)FileUtils.copyFile(File srcFile, File destFile)

// 復制文件

(2)FileUtils.copyFile(File input, OutputStream output)

// 復制文件到輸出流

(3)FileUtils.copyFileToDirectory(File srcFile, File destDir)

// 復制文件到一個指定的目錄

(4)FileUtils.copyInputStreamToFile(InputStream source, File destination)

// 把輸入流里面的內容復制到指定文件

(5)FileUtils.copyURLToFile(URL source, File destination)

// 把URL 里面內容復制到文件(可下載文件)

(6)FileUtils.copyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout)

// 把URL 里面內容復制到文件(可下載文件),設置連接超時,讀取超時等參數

2.3?把字符串寫入文件?writeStringToFile

(1)FileUtils.writeStringToFile(File file, String data, String encoding)

//把字符串寫入文件,設置編碼方式

(2)FileUtils.writeStringToFile(File file, String data, String encoding, boolean append)

//把字符串寫入文件,設置編碼方式,設置是否追加

2.4?把字節數組寫入文件?writeByteArrayToFile

(1)FileUtils.writeByteArrayToFile(File file, byte[] data)

(2)FileUtils.writeByteArrayToFile(File file, byte[] data, boolean append)

(3)FileUtils.writeByteArrayToFile(File file, byte[] data, int off, int len)

(4)FileUtils.writeByteArrayToFile(File file, byte[] data, int off, int len, boolean append)

2.5?把集合里面的內容寫入文件?writeLines

其中: encoding:文件編碼,lineEnding:每行以什么結尾

(1)FileUtils.writeLines(File file, Collection<?> lines)

(2)FileUtils.writeLines(File file, Collection<?> lines, boolean append)

(3)FileUtils.writeLines(File file, Collection<?> lines, String lineEnding)

(4)FileUtils.writeLines(File file, Collection<?> lines, String lineEnding, boolean append)

(5)FileUtils.writeLines(File file, String encoding, Collection<?> lines)

(6)FileUtils.writeLines(File file, String encoding, Collection<?> lines, boolean append)

(7)FileUtils.writeLines(File file, String encoding, Collection<?> lines, String lineEnding)

(8)FileUtils.writeLines(File file, String encoding, Collection<?> lines, String lineEnding, boolean append)

2.6?往文件里面寫內容?write

(1)FileUtils.write(File file, CharSequence data, Charset encoding)

(2)FileUtils.write(File file, CharSequence data, Charset encoding, boolean append)

(3)FileUtils.write(File file, CharSequence data, String encoding)

(4)FileUtils.write(File file, CharSequence data, String encoding, boolean append)

2.7?文件移動?moveDirectory, moveFile,?moveToDirectory

(1)FileUtils.moveDirectory(File srcDir, File destDir)

// 文件夾在內的所有文件都將移動

(2)FileUtils.moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)

// 以子文件夾的形式移動到另外一個文件下

(3)FileUtils.moveFile(File srcFile, File destFile)

// 移動文件

(4)FileUtils.moveFileToDirectory(File srcFile, File destDir, boolean createDestDir)

// 以子文件的形式移動到另外一個文件夾下

(5)FileUtils.moveToDirectory(File src, File destDir, boolean createDestDir)

// 移動文件或者目錄到指定的文件夾內

2.8?清空和刪除文件夾?deleteDirectory

(1)FileUtils.deleteDirectory(File directory)

// 刪除文件夾,包括文件夾和文件夾里面所有的文件

(2)FileUtils.cleanDirectory(File directory)

// 清空文件夾里面的所有的內容

(3)FileUtils.forceDelete(File file)

// 刪除,會拋出異常

(4)FileUtils.deleteQuietly(File file)

// 刪除,不會拋出異常

2.9?創建文件夾?forceMkdir,?forceMkdirParent

(1)FileUtils.forceMkdir(File directory)

// 創建文件夾(可創建多級)

(2)FileUtils.forceMkdirParent(File file)

// 創建文件的父級目錄

2.10?獲取文件輸入/輸出流?openInputStream,?openOutputStream

(1)FileUtils.openInputStream(File file)

(2)FileUtils.openOutputStream(File file)

2.11?讀取文件?readFileToString,?readLines,?readFileToByteArray

(1)FileUtils.readFileToByteArray(File file)

// 把文件讀取到字節數組

(2)FileUtils.readFileToString(File file, Charset encoding)

// 把文件讀取成字符串

(3)FileUtils.readFileToString(File file, String encoding)

(4)FileUtils.readLines(File file, Charset encoding)

// 把文件讀取成字符串集合

(5)FileUtils.readLines(File file, String encoding)

2.12?測試兩個文件的修改時間?isFileNewer,?isFileOlder

(1)FileUtils.isFileNewer(File file, Date date)

(2)FileUtils.isFileNewer(File file, File reference)

(3)FileUtils.isFileNewer(File file, long timeMillis)

(4)FileUtils.isFileOlder(File file, Date date)

(5)FileUtils.isFileOlder(File file, File reference)

(6)FileUtils.isFileOlder(File file, long timeMillis)

2.13?文件/文件夾的迭代?iterateFiles,?iterateFilesAndDirs,?lineIterator...

(1)FileUtils.iterateFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)

(2)FileUtils.iterateFiles(File directory, String[] extensions, boolean recursive)

(3)FileUtils.iterateFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)

(4)FileUtils.lineIterator(File file)

(5)FileUtils.lineIterator(File file, String encoding)

(6)FileUtils.listFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)

(7)FileUtils.listFiles(File directory, String[] extensions, boolean recursive)

(8)FileUtils.listFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)

2.14?其他一些常用方法

(1)FileUtils.isSymlink(File file) ????????// 判斷是否是符號鏈接

(2)FileUtils.directoryContains(File directory, File child) ????????// 判斷文件夾內是否包含某個文件或者文件夾

(3)FileUtils.sizeOf?=>?讀取文件大小

FileUtils.sizeOf(new File("D://test/test1")); ????????//返回Long

FileUtils.sizeOfAsBigInteger(new File("D://test/test1")); ????????//返回BigInteger

(4)FileUtils.sizeOfDirectory?=>?目錄,級聯計算文件下的所有文件大小

FileUtils.sizeOfDirectory(new File("D://test/test1"));????????//返回Long

FileUtils.sizeOfDirectoryAsBigInteger(new File("D://test/test1"));????????//返回BigIntege

(5)FileUtils.getFile?=>?獲取指定文件

File file = FileUtils.getFile("D://test/test1/123.txt");

(6)FileUtils.getFile?=>?獲取指定目錄下的:"lalala.txt", "lalala2.txt"

File file1 = FileUtils.getFile(new File("D://test/test1"), "123.txt", "456.txt");

(7)FileUtils.getTempDirectory()????????// 獲取臨時目錄文件

(8)FileUtils.getTempDirectoryPath()????????// 獲取臨時目錄路徑

(9)FileUtils.getUserDirectory()????????// 獲取用戶目錄文件

(10)FileUtils.getUserDirectoryPath()????????// 獲取用戶目錄路徑字符串

(11)FileUtils.touch(File file) ????????// 創建文件

(12)FileUtils.contentEquals(File file1, File file2) ????????// 比較兩個文件內容是否相同

(13)FileUtils.toFile?=>?根據URL獲取文件

//FileUtils.toFile(URL url)使用相對路徑創建一個File對象

????????String data = FileUtils.readFileToString(FileUtils.toFile(

??????? AjavaURLToFile.class.getResource("/ajava.txt")));

????????System.out.println("data = " + data);

//FileUtils.toFile(URL url)使用絕對路徑創建一個File對象

????????File file = FileUtils.toFile(new URL("file://D:/ajavademo.txt"));

????????data = FileUtils.readFileToString(file);

????????System.out.println("data = " + data);

(14)FileUtils.toFiles?=>?根據多個URL獲取多個文件文件,返回File[]數組

// File[] toFiles(final URL[] urls)

????????FileUtils.toFiles(null);

(15)FileUtils.toURLs?=>?文件地址轉為URL

????????FileUtils.toURLs(new File[]{new File("D://test/test1")});

(16)FileUtils.listFiles => 返回文件的列表 [?目錄 ] [ 過濾器?] [ 遞歸?]

// 列出該目錄下的所有doc文件,遞歸(擴展名不必帶.doc)

List<File> files = (List<File>) FileUtils.listFiles(new File("D://test"), new String[]{"doc"}, true);

//列出該目錄下的所有文件,不 遞歸

List<File> fileList = (List<File>)FileUtils.listFiles(dir,null,false);

(17)FileUtils.convertFileCollectionToFileArray => 把collection<File>轉換成File[]

FileUtils.convertFileCollectionToFileArray(files);

(18)FileUtils.byteCountToDisplaySize??=>?以可讀的方式,返回文件的大小EB, PB, TB, GB, MB, KB or bytes

System.out.println(FileUtils.byteCountToDisplaySize(10000000)); // 9 MB

System.out.println(FileUtils.byteCountToDisplaySize(1)); // 1 bytes

(19)FileUtils.openInputStream?=>?獲取文件輸入流

InputStream in = FileUtils.openInputStream(new File("D://test/test1"));

(20)FileUtils.openOutputStream?=>??獲取文件輸出流

OutputStream out = FileUtils.openOutputStream(new File("D://test/test2"));

out = FileUtils.openOutputStream(new File("D://test/test3"), true); //是否追加的形式添加內容

(21)FileUtils.cleanDirectory?=>?清除目錄中的內容,不會刪除該目錄,?遍歷目錄中的文件,如果是目錄則遞歸刪除;如果是文件則強制刪除,刪除失敗(文件不存在或無法刪除)都會拋出異常

FileUtils.cleanDirectory(new File("D://test/test1"));

(22)FileUtils.waitFor?=>?等待一個文件xx秒,知道文件創建后才返回。每max(100,remainning)循環檢查一次

while (FileUtils.waitFor(new File("D://test/test1"), 60)) {}

(23)FileUtils.isSymlink?=>?確定指定的文件是否是符號鏈接而不是實際文件

FileUtils.isSymlink(new File("D://test/test1"));

(24)FileUtils.innerListFiles => 根據一個過濾規則獲取一個目錄下的文件

(25)FileUtils.validateListFilesParameters => 查找給定目錄中的文件(以及可選的目錄子目錄)。所有找到的文件都由IOFileFilter過濾。

(27)FileUtils.setUpEffectiveFileFilter => 返回一個過濾器,該過濾器除了接受給定過濾器接受的{@link File}對象外,還接受其他文件。

(28)FileUtils.listFilesAndDirs => 查找給定目錄中的文件(以及可選的目錄子目錄)。所有找到的文件都由IOFileFilter過濾。

(29)FileUtils.iterateFilesAndDirs => 允許對給定目錄中的文件進行迭代(可選)它的子目錄)。

(30)FileUtils.toSuffixes => 把指定的字符串數組變成后綴名格式字符串數組

3. FileUtils類的常用常量

public static final long ONE_KB = 1024;public static final BigInteger ONE_KB_BI = BigInteger.valueOf(ONE_KB);public static final long ONE_MB = ONE_KB * ONE_KB;public static final BigInteger ONE_MB_BI = ONE_KB_BI.multiply(ONE_KB_BI);private static final long FILE_COPY_BUFFER_SIZE = ONE_MB * 30;public static final long ONE_GB = ONE_KB * ONE_MB;public static final BigInteger ONE_GB_BI = ONE_KB_BI.multiply(ONE_MB_BI);public static final long ONE_TB = ONE_KB * ONE_GB;public static final BigInteger ONE_TB_BI = ONE_KB_BI.multiply(ONE_GB_BI);public static final long ONE_PB = ONE_KB * ONE_TB;public static final BigInteger ONE_PB_BI = ONE_KB_BI.multiply(ONE_TB_BI);public static final long ONE_EB = ONE_KB * ONE_PB;public static final BigInteger ONE_EB_BI = ONE_KB_BI.multiply(ONE_PB_BI);public static final BigInteger ONE_ZB = BigInteger.valueOf(ONE_KB).multiply(BigInteger.valueOf(ONE_EB));public static final BigInteger ONE_YB = ONE_KB_BI.multiply(ONE_ZB);public static final File[] EMPTY_FILE_ARRAY = new File[0];

?

總結

以上是生活随笔為你收集整理的Java常用类(三):FileUtils类的全部內容,希望文章能夠幫你解決所遇到的問題。

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