使用 FileUtils 简化你的文件操作

坐标:https://mvnrepository.com/artifact/commons-io/commons-io

使用 FileUtils 简化你的文件操作

说明:

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

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

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

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

分类说明演示:

    1. 写 文件 / 文件夹

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

 2. 读 文件 / 文件夹

// 读文件   
//static String:readFileToString(File file, String encoding)   
System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));  
  
//static List<String>:readLines(File file, String encoding)   
System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); // 返回一个 list

 3. 删除 文件 / 文件夹

// 删除目录   
//static void:deleteDirectory(File directory)   
FileUtils.deleteDirectory(new File("D:/not/cxyapi"));  
  
//static boolean:deleteQuietly(File file)   
FileUtils.deleteQuietly(new File("D:/not/cxyapi")); // 文件夹不是空任然可以被删除,永远不会抛出异常 

移动 文件 / 文件夹

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

5.copy

// 结果是 cxyapi 和 cxyapi1 在同一目录   
FileUtils.copyDirectory(new File("D:/cxyapi"), new File("D:/cxyapi1"));   
// 结果是将 cxyapi 拷贝到 cxyapi2 下   
FileUtils.copyDirectoryToDirectory(new File("D:/cxyapi"), new File("D:/cxyapi2"));  
  
// 拷贝文件   
FileUtils.copyFile(new File("d:/cxyapi.xml"), new File("d:/cxyapi.xml.bak"));  
// 拷贝文件到目录中   
FileUtils.copyFileToDirectory(new File("d:/cxyapi.xml"), new File("d:/cxyapi"));  
// 拷贝 url 到文件   
FileUtils.copyURLToFile(new URL("http://www.cxyapi.com/rss/cxyapi.xml"), new File("d:/cxyapi.xml"));

 6. 其他

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

原文:http://snkcxy.iteye.com/blog/1845862

手机扫描二维码访问

本文标题:《使用 FileUtils 简化你的文件操作》作者:极四维博客
原文链接:https://cway.top/post/543.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年10月    »
123456
78910111213
14151617181920
21222324252627
28293031

搜索

控制面板

您好,欢迎到访网站!
  查看权限

最新留言

文章归档

  • 订阅本站的 RSS 2.0 新闻聚合