使用Apache commons io文件工具类FileUtils IOUtils使用

               

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


 

           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值