Commons IO

Commons IO


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

普通地读取一个网页的源代码的代码可能如下

InputStream in = new URL( "http://laoyu.info" ).openStream();
 try {
   InputStreamReader inR = new InputStreamReader( in );
   BufferedReader buf = new BufferedReader( inR );
   String line;
   while ( ( line = buf.readLine() ) != null ) {
     System.out.println( line );
   }
 } finally {
   in.close();
 }
使用了Commons IO,则可以大大简化代码.如下:

InputStream in = new URL( "http://laoyu.info" ).openStream();
 try {
   System.out.println( IOUtils.toString( in ) );
 } finally {
   IOUtils.closeQuietly(in);
 }
Commons IO里的常用类

FileUtils包含了文件操作的相关方法.
下面的代码用于读取磁盘上的某个文件:

File file = new File("c:/test.txt");
List lines = FileUtils.readLines(file, "UTF-8");
FileSystemUtils 可以获得指定磁盘路径的可用空间

long freeSpace = FileSystemUtils.freeSpace("d:/");
文件复制代码:

File src = new File("src.txt");
File dest = new File("dest.txt");
FileUtils.copyFile(src, dest);
补充:
方便地下载文件到本地

InputStream in = new
URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
  byte [] gif = IOUtils.toByteArray(in);
  //IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));
  FileUtils.writeByteArrayToFile(new File("c:/test.gif"),gif);
  IOUtils.closeQuietly(in);

/* 第一种:在 Struts2 当中,Struts1同样也可通过这种形式获取: */ 
/* 获取 request 对象 */ 
HttpServletRequest request = ServletActionContext.getRequest();  
/* 得到当前上下文绝对路径以保存图片 */ 
String contextPath = request.getSession().getServletContext().getRealPath("\\");  
 
/* 第二种:在 Filter 当中: */ 
public void init(FilterConfig config) throws ServletException {  
  /* 可将此参数放入到 Session 可供全局使用 */ 
  String contextPath = config.getServletContext().getRealPath("\\");  
 }  
 
/* 第三种 */ 
String contextPath = request.getScheme()+"://"+request.getServerName()    +":"+request.getServerPort()+request.getContextPath()+"/";
本文来自优快云博客,转载请标明出处:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值