`
shihuan830619
  • 浏览: 577446 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

commons-io2的一些应用

    博客分类:
  • J2EE
阅读更多
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();
		} 
		
	}

}
分享到:
评论

相关推荐

    commons-fileupload-1.3.3.jar和commons-io-2.6.jar

    在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...

    commons-fileupload-1.2.1.jar 和commons-io-1.4.jar

    在实际开发中,当你需要在Web应用中实现文件上传功能时,首先会配置`commons-fileupload-1.2.1.jar`来解析请求,然后利用`commons-io-1.4.jar`处理上传后的文件,比如保存到服务器的指定目录,或者进行一些预处理...

    commons-io-2.4.jar包 官方免费版

    6. **IO异常处理**:提供了一些更易用的异常类,使得处理IO异常时的代码更简洁。 7. **缓冲区操作**:提供了`BufferedInputStream`和`BufferedOutputStream`的增强版本,提高了读写性能。 8. **路径处理**:提供了...

    commons-io-2.6.jar下载

    Commons IO 是 Apache Software Foundation 开发的一个 Java 库,它的核心组件是 `commons-io...Apache Commons IO 以其强大的功能和良好的兼容性,广泛应用于各种 Java 项目中,大大简化了开发者处理 I/O 任务的工作。

    commons-fileupload-1.2.1.jar与commons-io-1.3.2.jar

    在处理文件上传时,`commons-fileupload`可能会依赖`commons-io`来完成一些底层的文件操作,比如读写文件、复制文件、检查文件是否存在等。`1.3.2`同样表示这个库的一个特定版本,它可能包含了更多的功能和改进。 ...

    commons-io-1.4.jar.zip_io流jar

    《Java IO流详解与commons-io-1.4.jar库的应用》 在Java编程语言中,IO(Input/Output)流是一组用于数据传输的类,它们允许程序读取和写入数据,无论是从磁盘、网络还是其他输入输出设备。Java的IO流系统是一个...

    文件上传两个jar包commons-fileupload-1.3.1和commons-io-2.4

    接着,`commons-io`可以帮助我们处理这些文件,比如将文件内容写入服务器指定的路径,或者进行一些预处理操作,如验证文件类型、大小等。整个过程无需直接处理低级别的IO流,大大简化了代码并提高了可维护性。 在...

    commons-fileupload-1.3.2.jar和commons-io-2.5.jar

    在使用`commons-fileupload-1.3.2.jar`处理文件上传时,通常会配合`commons-io-2.5.jar`来完成一些辅助操作,例如读取上传文件的内容、检查文件类型、移动文件到目标位置等。通过这两个库的组合,开发者能够方便地在...

    commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

    总结来说,`commons-fileupload-1.2.1.jar`和`commons-io-1.3.2.jar`是Java Web应用中处理文件上传的必备工具,它们提供了丰富的功能和良好的性能,简化了开发流程,使开发者可以专注于业务逻辑而不是底层细节。

    commons-io-2.6.jar

    《Apache Commons IO 2.6在Java开发中的应用详解》 Apache Commons IO是Apache软件基金会的一个开源项目,它提供了一系列实用的I/O操作工具,极大地简化了Java开发中与输入/输出相关的任务。其中,`commons-io-2.6....

    commons-fileupload-1.3.3.jar commons-io-2.5.jar

    2. **依赖引入**:在你的项目中添加`commons-fileupload-1.3.3.jar` 和 `commons-io-2.5.jar` 的依赖。如果你使用的是Maven,可以在pom.xml文件中添加相应的依赖项。 3. **创建解析器**:在Servlet的doPost方法中,...

    commons-io-2.2

    9. **异常处理**:Apache Commons IO封装了一些常见的I/O异常,如`IOExceptionWrapper`,提供了更友好的错误信息和处理机制。 10. **Maven依赖**:在Maven项目中,可以直接通过添加以下依赖引入Apache Commons IO ...

    java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载

    本教程将深入讲解如何使用Java Servlet、Apache Commons IO库(版本2.4)以及Apache Commons FileUpload库(版本1.3)来实现这一功能。 一、Apache Commons IO与FileUpload库介绍 Apache Commons IO是一个Java库,...

    struts2上传文件需要的jar包 commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar

    在Struts2中处理文件上传功能时,通常需要依赖两个关键的第三方库:`commons-fileupload`和`commons-io`。这两个jar包在Java文件上传处理中扮演着至关重要的角色。 `commons-fileupload-1.2.1.jar`是Apache Commons...

    commons-fileupload-1.2.1.jar和commons-io-1.4.jar

    这两个库常常一起使用,因为`commons-fileupload`在处理文件上传时,可能会依赖`commons-io`来执行一些底层的I/O操作。孤傲苍狼在他们的Demo中使用了这两个库,使得开发者能够方便地实现用户在Web应用中上传文件的...

    commons-fileupload.rar;包括commons-fileupload-1.3.1-bin和commons-io-2.4

    Commons FileUpload是Apache软件基金会的一...在实际开发中,结合`commons-fileupload`和`commons-io`这两个库,可以方便地实现在Java Web应用中的文件上传功能,并且可以自定义各种策略以满足特定的安全性和性能要求。

    commons-io-2.3.jar

    《Apache Commons IO 2.3.jar:高效便捷的IO操作工具》 Apache Commons IO库是Java开发者必备的工具包之一,尤其是其中的commons-io-2.3.jar版本,它为处理输入/输出流、文件、字符集转换、线程安全的读写操作等...

    commons-fileupload-1.2.2.jar和commons-io.jar

    在Java开发中,`commons-fileupload-1.2.2.jar` 和 `commons-io.jar` 是两个非常重要的库,它们提供了处理文件上传和输入/输出操作的强大功能。这两个库是Apache Commons项目的一部分,Apache Commons是Java社区的一...

    java文件上传jar(commons-fileupload-1.2.1.jar,commons-io-2.0.1.jar)

    在实际应用中,为了确保安全性和性能,你需要处理一些关键问题,比如: - 验证文件类型和大小,防止恶意文件上传。 - 处理文件名冲突,可能需要重命名上传的文件。 - 关注内存效率,大文件上传可能导致内存溢出,...

Global site tag (gtag.js) - Google Analytics