转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54972773 本文出自【赵彦军的博客】
在上面的几篇文章中,介绍了IO的常规用法,今天介绍Commons IO
框架的使用。
Apache Commons IO是Apache基金会创建并维护的Java函数库。它提供了许多类使得开发者的常见任务变得简单,同时减少重复代码,这些代码可能遍布于每个独立的项目中,你却不得不重复的编写。这些类由经验丰富的开发者维护,对各种问题的边界条件考虑周到,并持续修复相关bug。最新版本2.5
下载地址:http://commons.apache.org/PRoper/commons-io/download_io.cgi
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 { //把服务器上图片下载到本地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)//参数1:需要写入的文件,如果文件不存在,将自动创建。 参数2:需要写入的内容//参数3:编码格式 参数4:是否为追加模式( ture: 追加模式,把字符串追加到原内容后面)void writeStringToFile(final File file, final String data, final Charset 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.xml" ; File file2 = new File( filePath2 ) ; try { FileUtils.writeStringToFile( file2 , mes , "UTF-8" , true ); }catch (IOException e) { e.printStackTrace(); } }}把字节数组写入文件//File:目标文件//byte[]: 字节数组//boolean append : 是否为追加模式//final int off: 数组开始写入的位置 ; final int len :写入的长度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(); } }}把集合里面的内容写入文件//File file: 目标文件//Collection<?> lines: 内容集合//boolean append : 是否为追加模式//String encoding : 编码方式,比如"UTF-8" //String lineEnding : 每一行以什么结尾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 ) ; //第一行数据 list.add( mes2 ) ; //第二行数据 String filePath2 = "F:/abc.txt" ; File file2 = new File( filePath2 ) ; try { FileUtils.writeLines( file2 , list ); }catch (IOException e) { e.printStackTrace(); } }}结果:
小例子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 { //每一行以。结尾 FileUtils.writeLines( file2 , list, "。"); }catch (IOException e) { e.printStackTrace(); } }}结果:
小例子
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(); } }}文件移动//文件夹移动,文件夹在内的所有文件都将移动 void moveDirectory(final File srcDir, final File destDir)//文件夹移动到另外一个文件内部。boolean createDestDir:如果destDir文件夹不存在,是否要创建一个void moveDirectoryToDirectory(final File src, final File destDir, final boolean createDestDir)//移动文件void moveFile(final File srcFile, final File destFile)//把文件移动到另外一个文件内部。boolean createDestDir:如果destDir文件夹不存在,是否要创建一个void moveFileToDirectory(final File srcFile, final File destDir, final boolean createDestDir)//移动文件或者目录到指定的文件夹内。//boolean createDestDir:如果destDir文件夹不存在,是否要创建一个void moveToDirectory(final File src, final File destDir, final boolean createDestDir)清空和删除文件夹//删除一个文件夹,包括文件夹和文件夹里面所有的文件void deleteDirectory(final File directory)//清空一个文件夹里面的所有的内容void cleanDirectory(final File directory)//删除一个文件,会抛出异常//如果file是文件夹,就删除文件夹及文件夹里面所有的内容。如果file是文件,就删除。//如果某个文件/文件夹由于某些原因无法被删除,会抛出异常void forceDelete(final File file) //删除一个文件,没有任何异常抛出//如果file是文件夹,就删除文件夹及文件夹里面所有的内容。如果file是文件,就删除。//如果某个文件/文件夹由于某些原因无法被删除,不会抛出任何异常boolean deleteQuietly(final File file) 创建文件夹//创建一个文件夹,如果由于某些原因导致不能创建,则抛出异常//一次可以创建单级或者多级目录void forceMkdir(final File directory)//创建文件的父级目录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 { //一次可以创建单级或者多级目录 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 { //创建文件的父级目录 FileUtils.forceMkdirParent(file); }catch (IOException e) { e.printStackTrace(); } }}效果:
小例子
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(); } }}效果图
个人微信号:zhaoyanjun125
, 欢迎关注
新闻热点
疑难解答