Turn - Simplify your file operations with FileUtils

Original: http://snkcxy.iteye.com/blog/1845862

Foreword:

    In our work, we often encounter many file operations, and we are also used to writing some self-defined tool classes to simplify file operations. In fact, the FileUtils class of apache commons is such a tool class. Using it can greatly simplify our file operations. operate.

 

Ready to work:

    1. Download jar address: http://commons.apache.org/proper/commons-io/download_io.cgi

    2. Import the commons-io-2.4.jar file into your project

 

illustrate:

    1. Since it is a tool class, it is very simple to use, so this article just classifies it and shows what it can provide us.

    2. Those who are used to watching api can directly watch the official api   portal

    3. You can take a look at the official guide   guide portal

    4.FileUtils is just one of the tool classes of commons-io

 

Category Description Demonstration:

    1. Write file/folder

Java code   Favorite code
  1. /* write file 
  2.  * 1. Only 3 methods are listed here with full parameters. The api provides method overloading for some parameters. 
  3.  * 2. The last boolean parameter is whether it is an append mode 
  4.  * 3. If the target file does not exist, FileUtils will automatically create it 
  5.  * */  
  6. //static void:write(File file, CharSequence data, String encoding, boolean append)   
  7. FileUtils.write(new File("D:/a/b/cxyapi.txt"), "程序换api","UTF-8",true);  
  8.   
  9. //static void:writeLines(File file, Collection<?> lines, boolean append)   
  10. List<String> lines=new ArrayList<String>();  
  11. lines.add( "Welcome to visit:" );lines.add( "www.cxyapi.com" );  
  12. FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);  
  13.   
  14. //static void:writeStringToFile(File file, String data, String encoding, boolean append)   
  15. FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy""UTF-8",true);  

 

    2.读 文件/文件夹

Java代码   Favorite code
  1. //读文件  
  2. //static String:readFileToString(File file, String encoding)   
  3. System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));  
  4.   
  5. //static List<String>:readLines(File file, String encoding)   
  6. System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); //返回一个list  

 

    3.删除 文件/文件夹

Java代码   Favorite code
  1. //删除目录  
  2. //static void:deleteDirectory(File directory)   
  3. FileUtils.deleteDirectory(new File("D:/not/cxyapi"));  
  4.   
  5. //static boolean:deleteQuietly(File file)   
  6. FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夹不是空任然可以被删除,永远不会抛出异常  

 

    4.移动 文件/文件夹

Java代码   Favorite code
  1. //移动文件 或 文件夹  
  2. //static void:moveDirectory(File srcDir, File destDir)   
  3. FileUtils.moveDirectory(new File("D:/cxyapi1"), new File("D:/cxyapi2")); //注意这里 第二个参数文件不存在会引发异常  
  4. //static void:moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)   
  5. FileUtils.moveDirectoryToDirectory(new File("D:/cxyapi2"), new File("D:/cxyapi3"), true);  
  6. /* 上面两个方法的不同是: 
  7.  * moveDirectory:D:/cxyapi2里的内容是D:/cxyapi1的内容。 
  8.  * moveDirectoryToDirectory:D:/cxyapi2文件夹移动到到D:/cxyapi3里 
  9.  *  
  10.  * 下面的3个都比较简单没提供示例,只提供了api 
  11.  * 其中moveToDirectory和其他的区别是 它能自动识别操作文件还是文件夹 
  12.  */  
  13. //static void:moveFileToDirectory(srcFile, destDir, createDestDir)  
  14. //static void:moveFile(File srcFile, File destFile)   
  15. //static void:moveToDirectory(File src, File destDir, boolean createDestDir)  

 

    5.copy

Java代码   Favorite code
  1. //结果是cxyapi和cxyapi1在同一目录  
  2. FileUtils.copyDirectory(new File("D:/cxyapi"), new File("D:/cxyapi1"));   
  3. //结果是将cxyapi拷贝到cxyapi2下  
  4. FileUtils.copyDirectoryToDirectory(new File("D:/cxyapi"), new File("D:/cxyapi2"));  
  5.   
  6. //拷贝文件  
  7. FileUtils.copyFile(new File("d:/cxyapi.xml"), new File("d:/cxyapi.xml.bak"));  
  8. //拷贝文件到目录中  
  9. FileUtils.copyFileToDirectory(new File("d:/cxyapi.xml"), new File("d:/cxyapi"));  
  10. //拷贝url到文件  
  11. FileUtils.copyURLToFile(new URL("http://www.cxyapi.com/rss/cxyapi.xml"), new File("d:/cxyapi.xml"));  

 

    6.其他

Java代码   Favorite code
  1. //判断是否包含文件或者文件夹  
  2. boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("D:/cxyapi/cxyapi.txt"));  
  3. System.out.println(b);  
  4.   
  5. //获得临时目录 和 用户目录  
  6. System.out.println(FileUtils.getTempDirectoryPath());  
  7. System.out.println(FileUtils.getUserDirectoryPath());  
  8.   
  9. //打开流,如果不存在创建文件及其目录结构  
  10. //第二个参数表示 文件流是否是追加方式  
  11. FileOutputStream fos=FileUtils.openOutputStream(new File("D:/cxyapi/cxyapi.txt"),true);  
  12. fos.write( new  String( "Welcome to visit: www.cxyapi.com\r\n" ).getBytes());  
  13. fos.close();  
  14.   
  15. // file or folder size  
  16. System.out.println(FileUtils.sizeOf(new File("D:/cxyapi")));  
  17. System.out.println(FileUtils.sizeOfDirectory(new File("D:/cxyapi")));  

 

statement:

1. Original article, please indicate and link to this article when reprinting.

2. The article reflects my humble opinion. If there is any objection, please discuss and correct

3. For more content, please see my   personal blog (beta)

Original: http://snkcxy.iteye.com/blog/1845862

Foreword:

    In our work, we often encounter many file operations, and we are also used to writing some self-defined tool classes to simplify file operations. In fact, the FileUtils class of apache commons is such a tool class. Using it can greatly simplify our file operations. operate.

 

Ready to work:

    1. Download jar address: http://commons.apache.org/proper/commons-io/download_io.cgi

    2. Import the commons-io-2.4.jar file into your project

 

illustrate:

    1.由于是一个工具类使用都非常的简单 所以本文只是将其分类,展示它能够提供给我们什么。

    2.习惯看api的可以直接看官方的api   传送门

    3.可以看一看官方的指引  指引传送门

    4.FileUtils只是commons-io的其中一个工具类

 

分类说明演示:

    1.写 文件/文件夹

Java代码   Favorite code
  1. /* 写文件 
  2.  * 1.这里只列出3种方式全参数形式,api提供部分参数的方法重载 
  3.  * 2.最后一个布尔参数都是是否是追加模式 
  4.  * 3.如果目标文件不存在,FileUtils会自动创建 
  5.  * */  
  6. //static void:write(File file, CharSequence data, String encoding, boolean append)   
  7. FileUtils.write(new File("D:/a/b/cxyapi.txt"), "程序换api","UTF-8",true);  
  8.   
  9. //static void:writeLines(File file, Collection<?> lines, boolean append)   
  10. List<String> lines=new ArrayList<String>();  
  11. lines.add("欢迎访问:");lines.add("www.cxyapi.com");  
  12. FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);  
  13.   
  14. //static void:writeStringToFile(File file, String data, String encoding, boolean append)   
  15. FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy""UTF-8",true);  

 

    2.读 文件/文件夹

Java代码   Favorite code
  1. //读文件  
  2. //static String:readFileToString(File file, String encoding)   
  3. System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));  
  4.   
  5. //static List<String>:readLines(File file, String encoding)   
  6. System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); //返回一个list  

 

    3.删除 文件/文件夹

Java代码   Favorite code
  1. //删除目录  
  2. //static void:deleteDirectory(File directory)   
  3. FileUtils.deleteDirectory(new File("D:/not/cxyapi"));  
  4.   
  5. //static boolean:deleteQuietly(File file)   
  6. FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夹不是空任然可以被删除,永远不会抛出异常  

 

    4.移动 文件/文件夹

Java代码   Favorite code
  1. //移动文件 或 文件夹  
  2. //static void:moveDirectory(File srcDir, File destDir)   
  3. FileUtils.moveDirectory(new File("D:/cxyapi1"), new File("D:/cxyapi2")); //注意这里 第二个参数文件不存在会引发异常  
  4. //static void:moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)   
  5. FileUtils.moveDirectoryToDirectory(new File("D:/cxyapi2"), new File("D:/cxyapi3"), true);  
  6. /* 上面两个方法的不同是: 
  7.  * moveDirectory:D:/cxyapi2里的内容是D:/cxyapi1的内容。 
  8.  * moveDirectoryToDirectory:D:/cxyapi2文件夹移动到到D:/cxyapi3里 
  9.  *  
  10.  * 下面的3个都比较简单没提供示例,只提供了api 
  11.  * 其中moveToDirectory和其他的区别是 它能自动识别操作文件还是文件夹 
  12.  */  
  13. //static void:moveFileToDirectory(srcFile, destDir, createDestDir)  
  14. //static void:moveFile(File srcFile, File destFile)   
  15. //static void:moveToDirectory(File src, File destDir, boolean createDestDir)  

 

    5.copy

Java代码   Favorite code
  1. //结果是cxyapi和cxyapi1在同一目录  
  2. FileUtils.copyDirectory(new File("D:/cxyapi"), new File("D:/cxyapi1"));   
  3. //结果是将cxyapi拷贝到cxyapi2下  
  4. FileUtils.copyDirectoryToDirectory(new File("D:/cxyapi"), new File("D:/cxyapi2"));  
  5.   
  6. //拷贝文件  
  7. FileUtils.copyFile(new File("d:/cxyapi.xml"), new File("d:/cxyapi.xml.bak"));  
  8. //拷贝文件到目录中  
  9. FileUtils.copyFileToDirectory(new File("d:/cxyapi.xml"), new File("d:/cxyapi"));  
  10. //拷贝url到文件  
  11. FileUtils.copyURLToFile(new URL("http://www.cxyapi.com/rss/cxyapi.xml"), new File("d:/cxyapi.xml"));  

 

    6.其他

Java代码   Favorite code
  1. //判断是否包含文件或者文件夹  
  2. boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("D:/cxyapi/cxyapi.txt"));  
  3. System.out.println(b);  
  4.   
  5. //获得临时目录 和 用户目录  
  6. System.out.println(FileUtils.getTempDirectoryPath());  
  7. System.out.println(FileUtils.getUserDirectoryPath());  
  8.   
  9. //打开流,如果不存在创建文件及其目录结构  
  10. //第二个参数表示 文件流是否是追加方式  
  11. FileOutputStream fos=FileUtils.openOutputStream(new File("D:/cxyapi/cxyapi.txt"),true);  
  12. fos.write(new String("欢迎访问:www.cxyapi.com\r\n").getBytes());  
  13. fos.close();  
  14.   
  15. //文件 或 文件夹大小  
  16. System.out.println(FileUtils.sizeOf(new File("D:/cxyapi")));  
  17. System.out.println(FileUtils.sizeOfDirectory(new File("D:/cxyapi")));  

 

statement:

1. Original article, please indicate and link to this article when reprinting.

2. The article reflects my humble opinion. If there is any objection, please discuss and correct

3. For more content, please see my   personal blog (beta)

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326411519&siteId=291194637