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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java IO流学习总结七:Commons IO 2.5-FileUtils

發(fā)布時(shí)間:2024/9/30 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java IO流学习总结七:Commons IO 2.5-FileUtils 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Java IO流學(xué)習(xí)總結(jié)七:Commons IO 2.5-FileUtils

轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/zhaoyanjun6/article/details/54972773
本文出自【趙彥軍的博客】

Java IO流學(xué)習(xí)總結(jié)一:輸入輸出流
Java IO流學(xué)習(xí)總結(jié)二:File
Java IO流學(xué)習(xí)總結(jié)三:緩沖流-BufferedInputStream、BufferedOutputStream
Java IO流學(xué)習(xí)總結(jié)四:緩沖流-BufferedReader、BufferedWriter
Java IO流學(xué)習(xí)總結(jié)五:轉(zhuǎn)換流-InputStreamReader、OutputStreamWriter
Java IO流學(xué)習(xí)總結(jié)六:ByteArrayInputStream、ByteArrayOutputStream
Java IO流學(xué)習(xí)總結(jié)七:Commons IO 2.5-FileUtils

2021年 Java Okio-更加高效易用的IO庫(kù)

在上面的幾篇文章中,介紹了IO的常規(guī)用法,今天介紹Commons IO框架的使用。

Commons IO簡(jiǎn)介

Apache Commons IO是Apache基金會(huì)創(chuàng)建并維護(hù)的Java函數(shù)庫(kù)。它提供了許多類使得開(kāi)發(fā)者的常見(jiàn)任務(wù)變得簡(jiǎn)單,同時(shí)減少重復(fù)代碼,這些代碼可能遍布于每個(gè)獨(dú)立的項(xiàng)目中,你卻不得不重復(fù)的編寫。這些類由經(jīng)驗(yàn)豐富的開(kāi)發(fā)者維護(hù),對(duì)各種問(wèn)題的邊界條件考慮周到,并持續(xù)修復(fù)相關(guān)bug。最新版本2.5

下載地址:http://commons.apache.org/proper/commons-io/download_io.cgi

福利

另外我已經(jīng)把Commons IO 2.5的源碼發(fā)布到Jcenter,大家就不用下載jar包了,可以直接引用。

  • Maven引用
<dependency><groupId>org.apache.commons.io</groupId><artifactId>commonsIO</artifactId><version>2.5.0</version><type>pom</type> </dependency>
  • Gradle引用
compile 'org.apache.commons.io:commonsIO:2.5.0'

FileUtils 文件操作工具類

  • 復(fù)制文件夾
//復(fù)制文件夾(文件夾里面的文件內(nèi)容也會(huì)復(fù)制),file1和file2平級(jí)。 //參數(shù)1:文件夾; 參數(shù)2:文件夾 void copyDirectory( file1 , file2 ); //復(fù)制文件夾到另一個(gè)文件夾。 file1是file2的子文件夾. //參數(shù)1:文件夾; 參數(shù)2:文件夾 void copyDirectoryToDirectory( file1 , file2 );//復(fù)制文件夾,帶有文件過(guò)濾功能 void copyDirectory(File srcDir, File destDir, FileFilter filter)
  • 復(fù)制文件
void copyFile(final File srcFile, final File destFile) //復(fù)制文件到另外一個(gè)文件void long copyFile(final File input, final OutputStream output) //復(fù)制文件到輸出流void copyFileToDirectory( file1 , file2) //復(fù)制文件到一個(gè)指定的目錄//把輸入流里面的內(nèi)容復(fù)制到指定文件 void copyInputStreamToFile( InputStream source, File destination)//把URL 里面內(nèi)容復(fù)制到文件。可以下載文件。 //參數(shù)1:URL資源 ; 參數(shù)2:目標(biāo)文件 void copyURLToFile(final URL source, final File destination)//把URL 里面內(nèi)容復(fù)制到文件。可以下載文件。 //參數(shù)1:URL資源 ; 參數(shù)2:目標(biāo)文件;參數(shù)3:http連接超時(shí)時(shí)間 ; 參數(shù)4:讀取超時(shí)時(shí)間 void copyURLToFile(final URL source, final File destination,final int connectionTimeout, final int readTimeout)

實(shí)戰(zhàn)演練

  • 復(fù)制文件夾
package com.app;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;import org.apache.commons.io.FileUtils;public class A1 {public static void main(String[] args) {String filePath1 = "F:/dd" ;File file1 = new File( filePath1 ) ;String filePath2 = "F:/ee" ;File file2 = new File( filePath2 ) ;try {//復(fù)制文件夾FileUtils.copyDirectory( file1 , file2 );} catch (IOException e) {e.printStackTrace();}}
  • 復(fù)制文件
String filePath1 = "F:/123.gif" ; String filePath2 = "F:/abc.gif" ;File file1 = new File( filePath1 ) ; File file2 = new File( filePath2 ) ;//復(fù)制文件 FileUtils.copyFile( file1 , file2);
  • 下載文件 copyURLToFile(final URL source, final File destination)
package com.app;import java.io.File; import java.io.IOException; import java.net.URL;import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {String url = "http://imgsrc.baidu.com/baike/pic/item/7aec54e736d12f2ee289bffe4cc2d5628435689b.jpg" ;String filePath2 = "F:/abc.jpg" ;File file2 = new File( filePath2 ) ;try {//把服務(wù)器上圖片下載到本地F盤的abc.jpg圖片FileUtils.copyURLToFile( new URL( url ) , file2 );} catch (IOException e) {e.printStackTrace();}} }
  • 把字符串寫入文件
void writeStringToFile(final File file, final String data, final String encoding)//參數(shù)1:需要寫入的文件,如果文件不存在,將自動(dòng)創(chuàng)建。 參數(shù)2:需要寫入的內(nèi)容 //參數(shù)3:編碼格式 參數(shù)4:是否為追加模式( ture: 追加模式,把字符串追加到原內(nèi)容后面) void writeStringToFile(final File file, final String data, final Charset encoding, final booleanappend)

小例子

package com.app;import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {String mes = "下班了" ;String filePath2 = "F:/abc.xml" ;File file2 = new File( filePath2 ) ;try {FileUtils.writeStringToFile( file2 , mes , "UTF-8" , true ); }catch (IOException e) {e.printStackTrace();}} }
  • 把字節(jié)數(shù)組寫入文件
//File:目標(biāo)文件 //byte[]: 字節(jié)數(shù)組 //boolean append : 是否為追加模式 //final int off: 數(shù)組開(kāi)始寫入的位置 ; final int len :寫入的長(zhǎng)度void writeByteArrayToFile(final File file, final byte[] data)void writeByteArrayToFile(final File file, final byte[] data, final boolean append)void writeByteArrayToFile(final File file, final byte[] data, final int off, final int len)void writeByteArrayToFile(final File file, final byte[] data, final int off, final int len,final boolean append)

小例子

package com.app;import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {String mes = "哈哈,下班了" ;String filePath2 = "F:/abc.txt" ;File file2 = new File( filePath2 ) ;try {byte[] mesArray = mes.getBytes() ;FileUtils.writeByteArrayToFile( file2 , mesArray );}catch (IOException e) {e.printStackTrace();}} }
  • 把集合里面的內(nèi)容寫入文件
//File file: 目標(biāo)文件 //Collection<?> lines: 內(nèi)容集合 //boolean append : 是否為追加模式 //String encoding : 編碼方式,比如"UTF-8" //String lineEnding : 每一行以什么結(jié)尾 void writeLines(final File file, final Collection<?> lines)void writeLines(final File file, final Collection<?> lines, final boolean append)void writeLines(final File file, final String encoding, final Collection<?> lines)void writeLines(final File file, final String encoding, final Collection<?> lines,final boolean append)void writeLines(final File file, final String encoding, final Collection<?> lines,final String lineEnding)void writeLines(final File file, final String encoding, final Collection<?> lines,final String lineEnding, final boolean append)void writeLines(final File file, final Collection<?> lines, final String lineEnding)void writeLines(final File file, final Collection<?> lines, final String lineEnding,final boolean append)

小例子1

package com.app; import java.io.File; import java.io.IOException; import java.util.ArrayList;import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>() ;String mes = "哈哈,下班了" ;String mes2 = "回家,回家" ;list.add( mes ) ; //第一行數(shù)據(jù)list.add( mes2 ) ; //第二行數(shù)據(jù)String filePath2 = "F:/abc.txt" ;File file2 = new File( filePath2 ) ;try {FileUtils.writeLines( file2 , list );}catch (IOException e) {e.printStackTrace();}} }

結(jié)果:

小例子2

package com.app; import java.io.File; import java.io.IOException; import java.util.ArrayList;import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>() ;String mes = "哈哈,下班了" ;String mes2 = "回家,回家" ;list.add( mes ) ;list.add( mes2 ) ;String filePath2 = "F:/abc.txt" ;File file2 = new File( filePath2 ) ;try {//每一行以。結(jié)尾FileUtils.writeLines( file2 , list, "。");}catch (IOException e) {e.printStackTrace();}} }

結(jié)果:

  • 往文件里面寫內(nèi)容
/** * 參數(shù)解釋 * File file:目標(biāo)文件 * CharSequence data : 要寫入的內(nèi)容 * Charset encoding;String encoding : 編碼格式 * boolean append:是否為追加模式 */void write(final File file, final CharSequence data, final Charset encoding)void write(final File file, final CharSequence data, final String encoding)void write(final File file, final CharSequence data, final Charset encoding, final boolean append)void write(final File file, final CharSequence data, final String encoding, final boolean append)

小例子

package com.app; import java.io.File; import java.io.IOException;import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {String mes = "哈哈,下班了" ;String filePath2 = "F:/abc.txt" ;File file2 = new File( filePath2 ) ;try {FileUtils.write( file2 , mes , "utf-8" ,true );}catch (IOException e) {e.printStackTrace();}} }
  • 文件移動(dòng)
//文件夾移動(dòng),文件夾在內(nèi)的所有文件都將移動(dòng) void moveDirectory(final File srcDir, final File destDir)//文件夾移動(dòng)到另外一個(gè)文件內(nèi)部。boolean createDestDir:如果destDir文件夾不存在,是否要?jiǎng)?chuàng)建一個(gè) void moveDirectoryToDirectory(final File src, final File destDir, final boolean createDestDir)//移動(dòng)文件 void moveFile(final File srcFile, final File destFile)//把文件移動(dòng)到另外一個(gè)文件內(nèi)部。boolean createDestDir:如果destDir文件夾不存在,是否要?jiǎng)?chuàng)建一個(gè) void moveFileToDirectory(final File srcFile, final File destDir, final boolean createDestDir)//移動(dòng)文件或者目錄到指定的文件夾內(nèi)。 //boolean createDestDir:如果destDir文件夾不存在,是否要?jiǎng)?chuàng)建一個(gè) void moveToDirectory(final File src, final File destDir, final boolean createDestDir)
  • 清空和刪除文件夾
//刪除一個(gè)文件夾,包括文件夾和文件夾里面所有的文件 void deleteDirectory(final File directory)//清空一個(gè)文件夾里面的所有的內(nèi)容 void cleanDirectory(final File directory)//刪除一個(gè)文件,會(huì)拋出異常 //如果file是文件夾,就刪除文件夾及文件夾里面所有的內(nèi)容。如果file是文件,就刪除。 //如果某個(gè)文件/文件夾由于某些原因無(wú)法被刪除,會(huì)拋出異常 void forceDelete(final File file) //刪除一個(gè)文件,沒(méi)有任何異常拋出 //如果file是文件夾,就刪除文件夾及文件夾里面所有的內(nèi)容。如果file是文件,就刪除。 //如果某個(gè)文件/文件夾由于某些原因無(wú)法被刪除,不會(huì)拋出任何異常 boolean deleteQuietly(final File file)
  • 創(chuàng)建文件夾
//創(chuàng)建一個(gè)文件夾,如果由于某些原因?qū)е虏荒軇?chuàng)建,則拋出異常 //一次可以創(chuàng)建單級(jí)或者多級(jí)目錄 void forceMkdir(final File directory)//創(chuàng)建文件的父級(jí)目錄 void forceMkdirParent(final File file)

小例子1

package com.app; import java.io.File; import java.io.IOException;import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {String filePath = "F:/123/abc/abc.txt" ;File file = new File( filePath ) ;try {//一次可以創(chuàng)建單級(jí)或者多級(jí)目錄FileUtils.forceMkdir(file);}catch (IOException e) {e.printStackTrace();}} }

效果圖:

小例子1

package com.app; import java.io.File; import java.io.IOException;import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {String filePath = "F:/123/abc/abc.txt" ;File file = new File( filePath ) ;try {//創(chuàng)建文件的父級(jí)目錄FileUtils.forceMkdirParent(file);}catch (IOException e) {e.printStackTrace();}} }

效果:

  • 文件獲取輸入/輸出流
//獲取輸入流 FileInputStream openInputStream(final File file)//獲取輸出流 FileOutputStream openOutputStream(final File file)
  • 讀取文件
//把文件讀取到字節(jié)數(shù)組里面 byte[] readFileToByteArray(final File file)//把文件讀取成字符串 ;Charset encoding:編碼格式 String readFileToString(final File file, final Charset encoding)//把文件讀取成字符串 ;String encoding:編碼格式 String readFileToString(final File file, final String encoding)//把文件讀取成字符串集合 ;Charset encoding:編碼格式 List<String> readLines(final File file, final Charset encoding)//把文件讀取成字符串集合 ;String encoding:編碼格式 List<String> readLines(final File file, final String encoding)
  • 測(cè)試兩個(gè)文件的修改時(shí)間那個(gè)比較新/老
//判斷file文件的修改是否比reference文件新 boolean isFileNewer(final File file, final File reference) //判斷file文件的修改是否比 date日期新 boolean isFileNewer(final File file, final Date date)//判斷file文件的修改是否比 timeMillis 毫秒值新 boolean isFileNewer(final File file, final long timeMillis) //判斷file文件的修改是否比reference文件老 boolean isFileOlder(final File file, final File reference)//判斷file文件的修改是否比 date日期老 boolean isFileOlder(final File file, final Date date)//判斷file文件的修改是否比 timeMillis 毫秒值老 boolean isFileOlder(final File file, final long timeMillis)
  • 其他
//判斷文件夾內(nèi)是否包含某個(gè)文件或者文件夾 boolean directoryContains(final File directory, final File child)//獲取文件或者文件夾的大小 long sizeOf(final File file) //獲取臨時(shí)目錄文件 File getTempDirectory()//獲取臨時(shí)目錄路徑 String getTempDirectoryPath() //獲取用戶目錄文件 File getUserDirectory()//獲取用戶目錄路徑 static String getUserDirectoryPath()//如果不存在,新建文件或者創(chuàng)建單級(jí)目錄或者多級(jí)目錄 //如果存在,修改文件修改時(shí)間 void touch(final File file)//比較兩個(gè)文件內(nèi)容是否相同 boolean contentEquals(final File file1, final File file2)

小例子

package com.app; import java.io.File; import java.io.IOException;import org.apache.commons.io.FileUtils;public class A8 {public static void main(String[] args) {String filePath = "F:/123" ;File file = new File( filePath ) ;File child = new File("F:/123/abc/123.txt") ;try {boolean hasChild = FileUtils.directoryContains( file , child) ;System.out.println( hasChild );}catch (IOException e) {e.printStackTrace();}} }

效果圖


個(gè)人微信號(hào):zhaoyanjun125 , 歡迎關(guān)注

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-C4nDblzT-1599192189448)(http://o7rvuansr.bkt.clouddn.com/weixin200.jpg)]

總結(jié)

以上是生活随笔為你收集整理的Java IO流学习总结七:Commons IO 2.5-FileUtils的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。