commons-io2的一些应用

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import org.apache.commons.io.FileSystemUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.LineIterator;

public class TestIoDemo {

	private void phasmethod(){
		//拷贝文件
		try {
			File src = new File("test.dat");
	        File dest = new File("test.dat.bak");
	          
	        FileUtils.copyFile(src, dest);
	    } catch(IOException ioe) {
	        System.out.println("Problem copying file.");
	    }
	    
	    //拷贝文件到指定目录
	    try {
	        File src = new File("test.dat");
	        File dir = new File("./temp");
	 
	        FileUtils.copyFileToDirectory(src, dir);
	    } catch(IOException ioe) {
	        System.out.println("Problem copying file to dir.");
	    }
	      
	    //往文件里写一个字符串
	    try {
	    	String string = "Blah blah blah";
	        File dest = new File("test.tmp");
	          
	        FileUtils.writeStringToFile(dest, string, "ISO-8859-1");
	    } catch( IOException ioe ) {
	        System.out.println("Error writing out a String.");       
	    }
	      
	    //拷贝数据
	    try {
	        Writer writer = new FileWriter("test.dat");
	        InputStream inputStream = TestIoDemo.class.getClass().getResourceAsStream("/io/web.xml");
	        IOUtils.copy(inputStream, writer);
	        writer.close();
	        inputStream.close();
	    } catch (IOException e) {
	        System.out.println("Error copying data");
	    }
	 
	    //拷贝数据
	    try {
	        File src = new File("test.txt");
	        OutputStream output = new FileOutputStream(src);
	        InputStream inputStream = TestIoDemo.class.getClass().getResourceAsStream("/io/web.xml");
	        IOUtils.copy(inputStream, output);
//	        writer.close();
	        inputStream.close();
	        output.close();
	    } catch (IOException e) {
	        System.out.println("Error copying data");
	    }

            //把Collection或List中的数据按格式写入OutputStream输出流中
            try{
                File src = new File("test.txt");
	        OutputStream output = new FileOutputStream(src);
                List targetList = new ArrayList();
                targetList.add("111");
                targetList.add("中文");
                targetList.add("~!@#$%^&*(){}<>?\/");
                IOUtils.writeLines(targetList, IOUtils.LINE_SEPARATOR, output, "GB18030");
            } catch (IOException e) {
	        System.out.println("Error copying data");
	    }

            //把一个文件中的部分内容修改后存入另一个文件中
            try{
                OutputStream output = null;
	        InputStream inputStream = null;
                File targetfile = new File("目标文件.txt");
                output = new FileOutputStream(targetfile); //创建一个新的空文件
                inputStream = new FileInputStream("源文件.txt");  //读源文件
                List srcfilelines = FileUtils.readLines(new File(源文件.txt), "GB18030");
	        List targetList = new ArrayList();
	        for(Object linestr : srcfilelines){
	           if(linestr.toString().length() > 7){	            		  
                       if("password".equals(linestr.toString().substring(0, 8))){	            		                                       
                      System.out.println(linestr.toString().substring(9).trim());
		          targetList.add("password=" + ConvertCode.getBase64Pwd(linestr.toString().substring(9).trim()));
		       }else{
		            targetList.add(linestr.toString());
		       }
	            }else{
	            	targetList.add(linestr.toString());
	            }
	         }
	            
	         IOUtils.writeLines(targetList, IOUtils.LINE_SEPARATOR, output, "GB18030");
                 IOUtils.closeQuietly(outputStream);
                 IOUtils.closeQuietly(inputStream);
	         
                 outputStream.flush();   //及时刷新文件流   
	         inputStream.close();  
	         output.close();
            } catch (IOException e) {
	        System.out.println("Error copying data");
	    }  finally {  
                //关闭流  
                if (inputStream != null) {  
                    try {
                          IOUtils.closeQuietly(inputStream);  
        	          inputStream.close(); 
                    } catch (IOException exf) {  
                    	inputStream = null;  
                        exf.printStackTrace();
                    }  
                }
                if (output != null) {  
                    try {
                        IOUtils.closeQuietly(outputStream);
                        outputStream.flush();   //及时刷新文件流  
                    	output.close();  
                    } catch (IOException exf) {  
                    	output = null;  
                        exf.printStackTrace();
                    }  
                }
            }

            //对一个文件中的部分内容进行修改后保存
            try{
                InputStream inputStream = null;
                OutputStream outputStream = null;
                inputStream = new FileInputStream("C:\myshihuan.txt");
                List filelines = FileUtils.readLines(new 
                                  File("C:\myshihuan.txt"), "UTF-8");
                List list = new ArrayList();
                for(Object linestr : filelines){
                    if(linestr.toString().equal("shihuan")){
                        list.add("xiugaidata");   
                    }else{
                        list.add(linestr.toString());
                    }
                }

                File file = new File("C:\myshihuan.txt");
                outputStream = new FileOutputStream(file);
                IOUtils.writeLines(list, IOUtils.LINE_SEPARATOR, outputStream, "UTF-8");
                IOUtils.closeQuietly(outputStream);
                IOUtils.closeQuietly(inputStream);

                outputStream.flush();   //及时刷新文件流
                outputStream.close();
                inputStream.close();
            }catch(IOException ex){
                logger.error(ex.getMessage());
                ex.printStackTrace();
            }finally {
                //关闭流
                if (inputStream != null) {
                   try {
                      IOUtils.closeQuietly(inputStream);
                      inputStream.close();
                   } catch (IOException exf) {
                      inputStream = null;
                      logger.error(exf.getMessage());
                      exf.printStackTrace();
                   }
                }
                if (outputStream != null) {
                   try {
                      IOUtils.closeQuietly(outputStream);
                      outputStream.flush();   //及时刷新文件流
                      outputStream.close();
                   } catch (IOException exf) {
                      outputStream = null;
                      logger.error(exf.getMessage());
                      exf.printStackTrace();
                   }
                }
            }
	}

        public void printFileXg(){
          String filepn = "D:\shihuan\myboby\mydaling.txt";
          //mydaling
	  System.out.println(FilenameUtils.getBaseName(filepn)); 
          //shihuan\myboby\
	  System.out.println(FilenameUtils.getPath(filepn));  
          //D:\ 
	  System.out.println(FilenameUtils.getPrefix(filepn));
          //shihuan\myboby			              
          System.out.println(FilenameUtils.getPathNoEndSeparator(filepn));
          //D:\shihuan\myboby
	  System.out.println(FilenameUtils.getFullPathNoEndSeparator(filepn));     
          //D:\shihuan\myboby\
	  System.out.println(FilenameUtils.getFullPath(filepn));  
          //txt 
	  System.out.println(FilenameUtils.getExtension(filepn));

          String filecurdir = filepn.substring(0, filepn.lastIndexOf(SystemUtils.FILE_SEPARATOR));   //上传文件路径
          String filename = filepn.split(SystemUtils.FILE_SEPARATOR + SystemUtils.FILE_SEPARATOR)[filepn.split(SystemUtils.FILE_SEPARATOR + SystemUtils.FILE_SEPARATOR).length-1];  //上传文件名字
          String filenameprefix = filename.substring(0, filename.lastIndexOf("."));   //文件名前缀
          String filenamesuffix = filename.substring(filename.lastIndexOf("."), filename.length());   //文件名后缀   
        }
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//直接将IO流转成字符串 
		InputStream in = null;
		try {
			in = new URL( "http://jakarta.apache.org" ).openStream();
			try {   
				System.out.println(IOUtils.toString(in)); 
			} finally {   
				IOUtils.closeQuietly(in); 
			}
			//读取文本文件的所有行
			File file = new File("/commons/io/project.properties"); 
			List lines = FileUtils.readLines(file, "UTF-8");
			//路径处理 
			String filename = "C:/commons/io/../lang/project.xml"; 
			String normalized = FilenameUtils.normalize(filename); 
			// result is "C:/commons/lang/project.xml"
			//获取目录空间 
			long freeSpace = FileSystemUtils.freeSpace("C:/"); 
			//打印文件的所有行
			LineIterator it = FileUtils.lineIterator(file, "UTF-8"); 
			try {   
				while (it.hasNext()) {     
					String line = it.nextLine();     
					/// do something with line   
				} 
			} finally {   
				LineIterator.closeQuietly(it); 
			}
			
			//文件删除
			File file1 = new File(("io/project.properties"));
		    String display = FileUtils.byteCountToDisplaySize(file1.length());
		    System.out.println("project.xml is " + display);
		    FileUtils.forceDelete(file1);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} 
		
	}

}

猜你喜欢

转载自shihuan830619.iteye.com/blog/1159939