使用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 );  		  
			} 
		 }  
  
}  


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值