`
iwebcode
  • 浏览: 2071864 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

org.apache.commons.io.FileUtils学习

 
阅读更多

利用org.apache.commons.io.FileUtils快速读写文件

http://php.11519.net/5jblog/?p=475

API:http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html

String fileName = "C://11.txt";
File file = new File(fileName);
String fileContent = "";
try {
fileContent = org.apache.commons.io.FileUtils.readFileToString(file, "GBK");
} catch (IOException e) {
e.printStackTrace();
}
fileContent +="Helloworld";
try {
org.apache.commons.io.FileUtils.writeStringToFile(file, fileContent, "GBK");
} catch (IOException e) {
e.printStackTrace();
}

其他参考

Commons IO方便读写文件的工具类:http://laoyu.info/archives/282.html

Commons IO是apache的一个开源的工具包,封装了IO操作的相关类,使用Commons IO可以很方便的读写文件,url源代码等.

普通地读取一个网页的源代码的代码可能如下

  1. InputStreamin =newURL("http://laoyu.info").openStream();
  2. try{
  3. InputStreamReaderinR =newInputStreamReader(in);
  4. BufferedReaderbuf =newBufferedReader(inR);
  5. Stringline;
  6. while((line = buf.readLine())!=null){
  7. System.out.println(line);
  8. }
  9. }finally{
  10. in.close();
  11. }

使用了Commons IO,则可以大大简化代码.如下:

  1. InputStreamin =newURL("http://laoyu.info").openStream();
  2. try{
  3. System.out.println(IOUtils.toString(in));
  4. }finally{
  5. IOUtils.closeQuietly(in);
  6. }

Commons IO里的常用类

FileUtils包含了文件操作的相关方法.
下面的代码用于读取磁盘上的某个文件:

  1. Filefile =newFile("c:/test.txt");
  2. Listlines = FileUtils.readLines(file,"UTF-8");

FileSystemUtils 可以获得指定磁盘路径的可用空间

  1. longfreeSpace = FileSystemUtils.freeSpace("d:/");

文件复制代码:

  1. Filesrc =newFile("src.txt");
  2. Filedest =newFile("dest.txt");
  3. FileUtils.copyFile(src, dest);

补充:
方便地下载文件到本地

  1. InputStreamin =new
  2. URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
  3. byte[]gif = IOUtils.toByteArray(in);
  4. //IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));
  5. FileUtils.writeByteArrayToFile(newFile("c:/test.gif"),gif);
  6. IOUtils.closeQuietly(in);

分享 commons io 工具类 代码:http://www.javaeye.com/topic/575996

输入流复制到输出流

Java代码
  1. publicclassIoTest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args)throwsException{
  6. //TODOAuto-generatedmethodstub
  7. Writerwrite=newFileWriter("c:\\kk.dat");
  8. InputStreamins=newFileInputStream(newFile("c:\\text.txt"));
  9. IOUtils.copy(ins,write);
  10. write.close();
  11. ins.close();
  12. }
  13. }



文本写入指定文件

Java代码
  1. publicclassFileWirterTest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args)throwsException{
  6. //TODOAuto-generatedmethodstub
  7. Stringname="mynameispanxiuyan";
  8. Filefile=newFile("c:\\name.txt");
  9. FileUtils.writeStringToFile(file,name);
  10. }
  11. }




将输入流转换成文本

Java代码
  1. publicclassURLIoTest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args)throwsException{
  6. //TODOAuto-generatedmethodstub
  7. URLurl=newURL("http://www.dimurmill.com");
  8. InputStreamins=url.openStream();
  9. Stringcontents=IOUtils.toString(ins,"UTF-8");
  10. System.out.println("Slashdot:"+contents);
  11. }
  12. }



关闭相关流

Java代码
  1. publicclassIoCloseTest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args){
  6. //TODOAuto-generatedmethodstub
  7. Filefile=null;
  8. InputStreamins=null;
  9. try{
  10. file=newFile("C:\\Test.java");
  11. ins=newFileInputStream(file);
  12. }catch(Exceptione){
  13. e.printStackTrace();
  14. }finally{
  15. IOUtils.closeQuietly(ins);
  16. }
  17. }
  18. }




文件复制

Java代码
  1. publicclassFileCopyTest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args)throwsException{
  6. //TODOAuto-generatedmethodstub
  7. Filesrcfile=newFile("c:\\Test.java");
  8. Filedestfile=newFile("c:\\Test.java.bak");
  9. FileUtils.copyFile(srcfile,destfile);
  10. }
  11. }



文件复制指定的目录

Java代码
  1. publicclassFileCopyTest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args)throwsException{
  6. //TODOAuto-generatedmethodstub
  7. Filesrcfile=newFile("c:\\Test.java");
  8. FiledestDir=newFile("D:\\");
  9. FileUtils.copyFileToDirectory(srcfile,destDir);
  10. }
  11. }



网络流保存为文件

Java代码
  1. publicclassURLToFileTest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args)throwsException{
  6. //TODOAuto-generatedmethodstub
  7. URLurl=newURL("http://www.163.com");
  8. Filefile=newFile("c:\\163.html");
  9. FileUtils.copyURLToFile(url,file);
  10. }
  11. }




文件目录操作

Java代码
  1. publicclassDirOper{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args)throwsException{
  6. //TODOAuto-generatedmethodstub
  7. Filedir=newFile("c:\\test");
  8. FileUtils.cleanDirectory(dir);//清空目录下的文件
  9. FileUtils.deleteDirectory(dir);//删除目录和目录下的文件
  10. }
  11. }




目录大小

Java代码
  1. longsize=FileUtils.sizeOfDirectory(dir);




目录操作

Java代码
  1. FiletestFile=newFile("testFile.txt");
  2. //如果不存在,新建
  3. //如果存在,修改文件修改时间
  4. FileUtils.touch(testFile);




记录流的读取写入字节数

Java代码
  1. Filetest=newFile("test.dat");
  2. //输出流的统计
  3. CountingOutputStreamcountStream=null;
  4. //输入流的统计
  5. //CountingInputStreamcountStream=null;
  6. try{
  7. FileOutputStreamfos=newFileOutputStream(test);
  8. countStream=newCountingOutputStream(fos);
  9. countStream.write("Hello".getBytes());
  10. }catch(IOExceptionioe){
  11. System.out.println("Errorwritingbytestofile.");
  12. }finally{
  13. IOUtils.closeQuietly(countStream);
  14. }
  15. if(countStream!=null){
  16. intbytesWritten=countStream.getCount();
  17. System.out.println("Wrote"+bytesWritten+"bytestotest.dat");
  18. }




相同的内容写入不同的文本

Java代码
  1. Filetest1=newFile("split1.txt");
  2. Filetest2=newFile("split2.txt");
  3. OutputStreamoutStream=null;
  4. try{
  5. FileOutputStreamfos1=newFileOutputStream(test1);
  6. FileOutputStreamfos2=newFileOutputStream(test2);
  7. //包含不同的文本
  8. outStream=newTeeOutputStream(fos1,fos2);
  9. outStream.write("OneTwoThree,Test".getBytes());
  10. outStream.flush();
  11. }catch(IOExceptionioe){
  12. System.out.println("Errorwritingtosplitoutputstream");
  13. }finally{
  14. IOUtils.closeQuietly(outStream);
  15. }

转自:http://www.cnblogs.com/hellofei/archive/2010/04/10/1707131.html

分享到:
评论

相关推荐

    org.apache.commons.io.FileUtils

    Apache Commons IO库中的`org.apache.commons.io.FileUtils`类是一个非常实用的工具类,它提供了大量方便、高效的方法,用于处理文件系统操作。这个类在Java开发中被广泛使用,尤其是在处理大量的文件读写和管理任务...

    org.apache.commons.jar包官方免费版(附下载地址)

    解决Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils 类似错误,需要导入jar包,下载地址是http://commons.apache.org/proper/commons-io/download_io.cgi

    org.apache.commons.io 包

    `org.apache.commons.io`是这个库的核心包,包含了许多与文件、流、过滤器、读写操作相关的类和工具。 1. **文件操作**: `FileUtils` 类提供了大量的静态方法,用于执行文件和目录的操作,如复制、移动、删除、创建...

    org.apache.commons jar

    "org.apache.commons jar" 指的是这个项目中相关组件的集合,通常包含多个模块,每个模块专注于特定的编程任务。 1. **Apache Commons Lang**: 这个模块提供了许多高级字符串处理、日期和时间操作、数学计算以及...

    org.apache.commons 全部包

    "org.apache.commons" 是这个项目的主要命名空间,包含了许多子包,用于实现各种实用功能。在这个压缩包中,你可能会找到如 Commons Lang、Commons IO、Commons Collections、Commons BeanUtils 等多个子项目的集合...

    Java IO commons-io-2.5.jar

    相较于Java标准库中的`java.io.File`类提供的`copy()`方法,`commons-io`的`FileUtils.copyFile()`更简单易用,且异常处理更简洁。 总的来说,`commons-io-2.5.jar` 是Java开发者的强大工具,它极大地扩展了Java IO...

    org.apache.commons

    "org.apache.commons" 指的是 Apache Commons 项目下的顶级命名空间,包含了多个子模块,每个模块都专注于解决特定的问题或提供特定的功能。这个 jar 包是将这些功能集合在一起的便利工具,便于开发者集成到自己的 ...

    commons-io-2.6.jar下载

    Commons IO 是 Apache Software Foundation 开发的一个 Java 库,它的核心组件是 `commons-io-2.6.jar`。这个版本的 JAR 文件包含了丰富的输入/输出流、文件操作、I/O 流工具类以及与文件系统交互的相关功能。下面将...

    commons-io-2.11.0-bin.zip

    在描述中提到的"org.apache.commons.io.FileUtils"是Apache Commons IO中的一个关键类,它提供了大量静态方法来简化文件操作,如复制、移动、删除、读写文件等。以下是一些FileUtils类中的核心功能: 1. 文件复制:...

    commons-io-2.11.0.rar

    Apache Commons IO 是一个Java库,专门用于处理输入/输出(I/O)操作。这个库提供了大量的实用工具类,简化了常见的文件、流、过滤器、读写操作等任务。"commons-io-2.11.0.rar"是Apache Commons IO库的版本2.11.0的...

    org.apache.commons 所有jar包 非常实用

    在"org.apache.commons 所有jar包 非常实用"这个压缩包中,你将找到一系列与 Apache Commons 相关的 jar 包,这些 jar 包包含了多种模块,每个模块都有其特定的用途。 1. **Commons Lang**: 这个模块提供了一些高级...

    org.apache.commons.io.jar

    Apache Commons IO是Java开发中常用的一个开源库,其核心组件是`org.apache.commons.io.jar`文件。这个库提供了一系列高度实用的I/O操作类,大大简化了对输入/输出流的处理,为开发者提供了丰富的功能和强大的工具。...

    commons-io-2.4 包含了所有commons-io的jar包和源码

    10. **源码分析**:由于包含源码,开发者可以深入理解Apache Commons IO库的内部工作原理,学习优秀的编程实践,并根据需求进行扩展或定制。 Apache Commons IO 是Java开发中的重要辅助库,它的功能强大且实用,...

    apache.commons全套jar包下载

    1. Apache Commons IO: 这个模块专注于输入/输出操作,如文件处理、流操作、数据转换等。它提供了一系列方便实用的类和方法,比如FileUtils用于文件操作,IOUtils用于流的读写和复制,以及EndianUtils用于处理字节序...

    commons-io-2.6.jar

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

    apache-commons所有jar包

    2. **Commons IO**: 专注于文件输入输出相关的操作,提供了一些方便的类和方法,如 FileUtils、IOUtils、FileFilter 等。 3. **Commons Collections**: 为 Java 集合框架提供了扩展,包括各种集合操作、转换和工厂...

    Apache commons-io-2.5.jar

    Apache Commons IO 是一个Java库,专门用于处理输入/输出(I/O)操作。这个库提供了大量的实用工具类,使得在处理文件、流、过滤器、读写操作时更加方便。"commons-io-2.5.jar"是Apache Commons IO库的一个版本,...

    【Java基础】-- FileUtils工具类常用方法(csdn)————程序.pdf

    在Java开发中,进行文件操作是必不可少的一部分,Apache Commons IO库提供了一个非常方便的工具类FileUtils,它对Java基础的IO操作进行了封装,使得文件处理更加简洁易用。在本文中,我们将详细介绍FileUtils工具类...

Global site tag (gtag.js) - Google Analytics