设为首页 收藏本站
查看: 905|回复: 0

[经验分享] 使用org.apache.commons.io.FileUtils,IOUtils;工具类操作文件

[复制链接]

尚未签到

发表于 2015-11-14 02:04:01 | 显示全部楼层 |阅读模式
File src = new File("G:/2012/portal/login.jsp");
File tar = new File("G:/2012/portal/loginZs.jsp");
File tarDir = new File("G:/2012/portal/center/");
FileUtils.copyFile(src,tar);//复制文件
FileUtils.copyFileToDirectory(src, tarDir);//复制文件到指定文件夹

  


Commons IO是apache的一个开源的工具包,封装了IO操作的相关类,使用Commons IO可以很方便的读写文件,


FileUtils 中提供了许多设计文件操作的 已封装好的方法。


IOUtils 则是提供了读写文件的方法。



读取文件:


// by FileUtils  
List<String> lines = FileUtils.readLines(file, &quot;UTF-8&quot;);  
// by IOUtils  
List<String> lines = IOUtils.readLines(new FileInputStream(file), &quot;UTF-8&quot;);  

写入文件:  


// by FileUtils  
FileUtils.writeLines(file, &quot;UTF-8&quot;, lines);  
// by IOUtils  
IOUtils.writeLines(lines, null, new FileOutputStream(file));  
  




public class IoTest {  
/**
* @param args
*/  
public static void main(String[] args) throws Exception {  
// 输入流复制到 输出流
Writer write = new FileWriter(&quot;c:\\kk.dat&quot;);  
InputStream ins = new FileInputStream(new File(&quot;c:\\text.txt&quot;));  
IOUtils.copy(ins, write);  
write.close();  
ins.close();  
//文本写入指定文件
String name = &quot;my name is panxiuyan&quot;;  
File file =  new File(&quot;c:\\name.txt&quot;);  
FileUtils.writeStringToFile(file, name);  
//将输入流转换成文本
URL url = new URL(&quot;http://www.dimurmill.com&quot;);  
InputStream ins = url.openStream();  
String contents = IOUtils.toString(ins,&quot;UTF-8&quot;);  
System.out.println( &quot;Slashdot: &quot; + contents );  
//关闭相关流
File file = null;  
InputStream ins = null;  
try{  
file = new File(&quot;C:\\Test.java&quot;);  
ins = new FileInputStream(file);  
}catch(Exception e){  
e.printStackTrace();  
}finally{  
IOUtils.closeQuietly(ins);  
}  
}
//文件复制
File srcfile = new File(&quot;c:\\Test.java&quot;);   
File destfile = new File(&quot;c:\\Test.java.bak&quot;);   
FileUtils.copyFile(srcfile, destfile);   
//文件复制指定的目录
File srcfile = new File(&quot;c:\\Test.java&quot;);   
File destDir = new File(&quot;D:\\&quot;);  
FileUtils.copyFileToDirectory(srcfile, destDir);  
//网络流保存为文件
URL url = new URL(&quot;http://www.163.com&quot;);   
File file = new File(&quot;c:\\163.html&quot;);      
FileUtils.copyURLToFile(url, file);  
//文件目录操作
File dir = new File(&quot;c:\\test&quot;);  
FileUtils.cleanDirectory(dir);//清空目录下的文件  
FileUtils.deleteDirectory(dir);//删除目录和目录下的文件
//目录大小  
long size = FileUtils.sizeOfDirectory(dir);  
//目录操作
File testFile = new File( &quot;testFile.txt&quot; );  
//如果不存在,新建  
// 如果存在,修改文件修改时间  
FileUtils.touch( testFile );  
//记录流的读取写入字节数
File test = new File( &quot;test.dat&quot; );  
//输出流的统计  
CountingOutputStream countStream = null;  
//输入流的统计  
//CountingInputStream countStream = null;  
try {  
FileOutputStream fos = new FileOutputStream( test );   
countStream = new CountingOutputStream( fos );  
countStream.write( &quot;Hello&quot;.getBytes( ) );  
} catch( IOException ioe ) {  
System.out.println( &quot;Error writing bytes to file.&quot; );  
} finally {   
IOUtils.closeQuietly( countStream );   
}  
if( countStream != null ) {  
int bytesWritten = countStream.getCount( );  
System.out.println( &quot;Wrote &quot; + bytesWritten + &quot; bytes to test.dat&quot; );  
}  
//相同的内容写入不同的文本
File test1 = new File(&quot;split1.txt&quot;);  
File test2 = new File(&quot;split2.txt&quot;);  
OutputStream outStream = null;  
try {  
FileOutputStream fos1 = new FileOutputStream( test1 );  
FileOutputStream fos2 = new FileOutputStream( test2 );  
//包含不同的文本  
outStream = new TeeOutputStream( fos1, fos2 );  
outStream.write( &quot;One Two Three, Test&quot;.getBytes( ) );  
outStream.flush( );   
} catch( IOException ioe ) {   
System.out.println( &quot;Error writing to split output stream&quot; );   
} finally {   
IOUtils.closeQuietly( outStream );   
}
}  
}  




  

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138928-1-1.html 上篇帖子: 关于org.apache.catalina.LifecycleException: Failed to start component 报错处理 下篇帖子: java apache commons HttpClient发送get和post请求的学习整理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表