http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
pom.xml
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
FileUtils的使用:
// 複製文件夾
FileUtils.copyDirectory(File srcDir, File destDir) // 複製文件夾(文件夾裏面的文件內容也會複製)
FileUtils.copyDirectory(File srcDir, File destDir, FileFilter filter) // 複製文件夾,帶有文件過濾功能
FileUtils.copyDirectoryToDirectory(File srcDir, File destDir) // 以子目錄的形式將文件夾複製到到另一個文件夾下
// 複製文件
FileUtils.copyFile(File srcFile, File destFile) // 複製文件
FileUtils.copyFile(File input, OutputStream output) // 複製文件到輸出流
FileUtils.copyFileToDirectory(File srcFile, File destDir) // 複製文件到一個指定的目錄
FileUtils.copyInputStreamToFile(InputStream source, File destination) // 把輸入流裏面的內容複製到指定文件
FileUtils.copyURLToFile(URL source, File destination) // 把URL 裏面內容複製到文件(可以下載文件)
FileUtils.copyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout)
// 把字符串寫入文件
FileUtils.writeStringToFile(File file, String data, String encoding)
FileUtils.writeStringToFile(File file, String data, String encoding, boolean append)
// 把字節數組寫入文件
FileUtils.writeByteArrayToFile(File file, byte[] data)
FileUtils.writeByteArrayToFile(File file, byte[] data, boolean append) FileUtils.writeByteArrayToFile(File file, byte[] data, int off, int len) FileUtils.writeByteArrayToFile(File file, byte[] data, int off, int len, boolean append)
// 把集合裏面的內容寫入文件
// encoding:文件編碼,lineEnding:每行以什麼結尾
FileUtils.writeLines(File file, Collection<?> lines)
FileUtils.writeLines(File file, Collection<?> lines, boolean append)
FileUtils.writeLines(File file, Collection<?> lines, String lineEnding)
FileUtils.writeLines(File file, Collection<?> lines, String lineEnding, boolean append)
FileUtils.writeLines(File file, String encoding, Collection<?> lines)
FileUtils.writeLines(File file, String encoding, Collection<?> lines, boolean append)
FileUtils.writeLines(File file, String encoding, Collection<?> lines, String lineEnding)
FileUtils.writeLines(File file, String encoding, Collection<?> lines, String lineEnding, boolean append)
// 往文件裏面寫內容
FileUtils.write(File file, CharSequence data, Charset encoding)
FileUtils.write(File file, CharSequence data, Charset encoding, boolean append)
FileUtils.write(File file, CharSequence data, String encoding)
FileUtils.write(File file, CharSequence data, String encoding, boolean append)
// 文件移動
FileUtils.moveDirectory(File srcDir, File destDir) // 文件夾在內的所有文件都將移動FileUtils.moveDirectoryToDirectory(File src, File destDir, boolean createDestDir) // 以子文件夾的形式移動到另外一個文件下
FileUtils.moveFile(File srcFile, File destFile) // 移動文件
FileUtils.moveFileToDirectory(File srcFile, File destDir, boolean createDestDir) // 以子文件的形式移動到另外一個文件夾下
FileUtils.moveToDirectory(File src, File destDir, boolean createDestDir) // 移動文件或者目錄到指定的文件夾內
// 清空和刪除文件夾
FileUtils.deleteDirectory(File directory) // 刪除文件夾,包括文件夾和文件夾裏面所有的文件
FileUtils.cleanDirectory(File directory) // 清空文件夾裏面的所有的內容
FileUtils.forceDelete(File file) // 刪除,會拋出異常
FileUtils.deleteQuietly(File file) // 刪除,不會拋出異常
// 創建文件夾
FileUtils.forceMkdir(File directory) // 創建文件夾(可創建多級)
FileUtils.forceMkdirParent(File file) // 創建文件的父級目錄
// 獲取文件輸入/輸出流
FileUtils.openInputStream(File file)
FileUtils.openOutputStream(File file)
// 讀取文件
FileUtils.readFileToByteArray(File file) // 把文件讀取到字節數組
FileUtils.readFileToString(File file, Charset encoding) // 把文件讀取成字符串
FileUtils.readFileToString(File file, String encoding)
FileUtils.readLines(File file, Charset encoding) // 把文件讀取成字符串集合
FileUtils.readLines(File file, String encoding)
// 測試兩個文件的修改時間
FileUtils.isFileNewer(File file, Date date)
FileUtils.isFileNewer(File file, File reference)
FileUtils.isFileNewer(File file, long timeMillis)
FileUtils.isFileOlder(File file, Date date)
FileUtils.isFileOlder(File file, File reference)
FileUtils.isFileOlder(File file, long timeMillis)
// 文件/文件夾的迭代
FileUtils.iterateFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
FileUtils.iterateFiles(File directory, String[] extensions, boolean recursive)
FileUtils.iterateFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
FileUtils.lineIterator(File file)
FileUtils.lineIterator(File file, String encoding)
FileUtils.listFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
FileUtils.listFiles(File directory, String[] extensions, boolean recursive)
FileUtils.listFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
// 其他
FileUtils.isSymlink(File file) // 判斷是否是符號鏈接
FileUtils.directoryContains(File directory, File child) // 判斷文件夾內是否包含某個文件或者文件夾
FileUtils.sizeOf(File file) // 獲取文件或者文件夾的大小
FileUtils.getTempDirectory()// 獲取臨時目錄文件
FileUtils.getTempDirectoryPath()// 獲取臨時目錄路徑
FileUtils.getUserDirectory()// 獲取用戶目錄文件
FileUtils.getUserDirectoryPath()// 獲取用戶目錄路徑
FileUtils.touch(File file) // 創建文件
FileUtils.contentEquals(File file1, File file2) // 比較兩個文件內容是否相同