使用org.apache.commons.io.FileUtils,IOUtils;工具类操作文件

  1. File src = new File("G:/2012/portal/login.jsp");  
  2. File tar = new File("G:/2012/portal/loginZs.jsp");  
  3. File tarDir = new File("G:/2012/portal/center/");  
  4.   
  5. FileUtils.copyFile(src,tar);//复制文件  
  6. FileUtils.copyFileToDirectory(src, tarDir);//复制文件到指定文件夹  
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 则是提供了读写文件的方法。


读取文件:

  1. // by FileUtils    
  2. List<String> lines = FileUtils.readLines(file, "UTF-8");    
  3.     
  4. // by IOUtils    
  5. List<String> lines = IOUtils.readLines(new FileInputStream(file), "UTF-8");    

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

写入文件:

  1. // by FileUtils    
  2. FileUtils.writeLines(file, "UTF-8", lines);    
  3.     
  4. // by IOUtils    
  5. IOUtils.writeLines(lines, null, new FileOutputStream(file));    
// by FileUtils  
FileUtils.writeLines(file, "UTF-8", lines);  
  
// by IOUtils  
IOUtils.writeLines(lines, null, new FileOutputStream(file));  


  1. public class IoTest {    
  2.     
  3.     /**  
  4.      * @param args  
  5.      */    
  6.     public static void main(String[] args) throws Exception {    
  7.         // 输入流复制到 输出流   
  8.         Writer write = new FileWriter("c:\\kk.dat");    
  9.     
  10.         InputStream ins = new FileInputStream(new File("c:\\text.txt"));    
  11.     
  12.         IOUtils.copy(ins, write);    
  13.         write.close();    
  14.     
  15.         ins.close();    
  16.           
  17.         //文本写入指定文件   
  18.         String name = "my name is panxiuyan";    
  19.             
  20.         File file =  new File("c:\\name.txt");    
  21.             
  22.         FileUtils.writeStringToFile(file, name);    
  23.           
  24.         //将输入流转换成文本   
  25.           
  26.         URL url = new URL("http://www.dimurmill.com");    
  27.             
  28.         InputStream ins = url.openStream();    
  29.             
  30.         String contents = IOUtils.toString(ins,"UTF-8");    
  31.         System.out.println( "Slashdot: " + contents );    
  32.     
  33.             //关闭相关流  
  34.              File file = null;    
  35.             
  36.         InputStream ins = null;    
  37.         try{    
  38.             file = new File("C:\\Test.java");    
  39.                 
  40.             ins = new FileInputStream(file);    
  41.         }catch(Exception e){    
  42.             e.printStackTrace();    
  43.         }finally{    
  44.             IOUtils.closeQuietly(ins);    
  45.         }    
  46.     
  47.           
  48.         }  
  49.           
  50.         //文件复制  
  51.         File srcfile = new File("c:\\Test.java");      
  52.         File destfile = new File("c:\\Test.java.bak");      
  53.         FileUtils.copyFile(srcfile, destfile);      
  54.       
  55.         //文件复制指定的目录   
  56.         File srcfile = new File("c:\\Test.java");      
  57.         File destDir = new File("D:\\");    
  58.         FileUtils.copyFileToDirectory(srcfile, destDir);    
  59.       
  60.         //网络流保存为文件  
  61.     URL url = new URL("http://www.163.com");     
  62.         File file = new File("c:\\163.html");        
  63.         FileUtils.copyURLToFile(url, file);    
  64.           
  65.         //文件目录操作   
  66.         File dir = new File("c:\\test");    
  67.         FileUtils.cleanDirectory(dir);//清空目录下的文件    
  68.         FileUtils.deleteDirectory(dir);//删除目录和目录下的文件   
  69.           
  70.         //目录大小    
  71.         long size = FileUtils.sizeOfDirectory(dir);    
  72.           
  73.         //目录操作  
  74.         File testFile = new File( "testFile.txt" );    
  75.         //如果不存在,新建    
  76.         // 如果存在,修改文件修改时间    
  77.         FileUtils.touch( testFile );    
  78.         //记录流的读取写入字节数   
  79.         File test = new File( "test.dat" );    
  80.         //输出流的统计    
  81.     CountingOutputStream countStream = null;    
  82.     //输入流的统计    
  83.     //CountingInputStream countStream = null;    
  84.     try {    
  85.             FileOutputStream fos = new FileOutputStream( test );            
  86.         countStream = new CountingOutputStream( fos );    
  87.         countStream.write( "Hello".getBytes( ) );    
  88.         } catch( IOException ioe ) {    
  89.             System.out.println( "Error writing bytes to file." );    
  90.         } finally {         
  91.             IOUtils.closeQuietly( countStream );      
  92.         }    
  93.                     
  94.         if( countStream != null ) {    
  95.              int bytesWritten = countStream.getCount( );    
  96.              System.out.println( "Wrote " + bytesWritten + " bytes to test.dat" );    
  97.         }    
  98.                   
  99.         //相同的内容写入不同的文本   
  100.         File test1 = new File("split1.txt");    
  101.                 File test2 = new File("split2.txt");    
  102.         OutputStream outStream = null;    
  103.         try {    
  104.             FileOutputStream fos1 = new FileOutputStream( test1 );    
  105.             FileOutputStream fos2 = new FileOutputStream( test2 );    
  106.             //包含不同的文本    
  107.             outStream = new TeeOutputStream( fos1, fos2 );    
  108.             outStream.write( "One Two Three, Test".getBytes( ) );    
  109.             outStream.flush( );         
  110.         } catch( IOException ioe ) {        
  111.             System.out.println( "Error writing to split output stream" );           
  112.         } finally {             
  113.             IOUtils.closeQuietly( outStream );              
  114.             }   
  115.          }    
  116.     
  117. }    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LiTianao88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值