`

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

    博客分类:
  • java
 
阅读更多

  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. InputStream in = new URL( "http://laoyu.info" ).openStream();
  2.  try {
  3.    InputStreamReader inR = new InputStreamReader( in );
  4.    BufferedReader buf = new BufferedReader( inR );
  5.    String line;
  6.    while ( ( line = buf.readLine() ) != null ) {
  7.      System.out.println( line );
  8.    }
  9.  } finally {
  10.    in.close();
  11.  }

 

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

 

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

 

Commons IO里的常用类

 

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

 

  1. File file = new File("c:/test.txt");
  2. List lines = FileUtils.readLines(file, "UTF-8");

 

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

 

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

 

文件复制代码:

 

  1. File src = new File("src.txt");
  2. File dest = new File("dest.txt");
  3. FileUtils.copyFile(src, dest);

 

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

 

  1. InputStream in = 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(new File("c:/test.gif"),gif);
  6.   IOUtils.closeQuietly(in);

 

 

 

 

 

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

 

输入流复制到 输出流 

 

Java代码 
  1. public class IoTest {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) throws Exception {  
  7.         // TODO Auto-generated method stub  
  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. }  

 



文本写入指定文件 

 

Java代码 
  1. public class FileWirterTest {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) throws Exception{  
  7.         // TODO Auto-generated method stub  
  8.           
  9.         String name = "my name is panxiuyan";  
  10.           
  11.         File file =  new File("c:\\name.txt");  
  12.           
  13.         FileUtils.writeStringToFile(file, name);  
  14.   
  15.     }  
  16.   
  17. }  

 




将输入流转换成文本 

 

Java代码 
  1. public class URLIoTest {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) throws Exception {  
  7.         // TODO Auto-generated method stub  
  8.         URL url = new URL("http://www.dimurmill.com");  
  9.           
  10.         InputStream ins = url.openStream();  
  11.           
  12.         String contents = IOUtils.toString(ins,"UTF-8");  
  13.         System.out.println( "Slashdot: " + contents );  
  14.   
  15.   
  16.     }  
  17.   
  18. }  

 



关闭相关流

 

Java代码 
  1. public class IoCloseTest {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) {  
  7.         // TODO Auto-generated method stub  
  8.           
  9.         File file = null;  
  10.           
  11.         InputStream ins = null;  
  12.         try{  
  13.             file = new File("C:\\Test.java");  
  14.               
  15.             ins = new FileInputStream(file);  
  16.         }catch(Exception e){  
  17.             e.printStackTrace();  
  18.         }finally{  
  19.             IOUtils.closeQuietly(ins);  
  20.         }  
  21.   
  22.     }  
  23.   
  24. }  

 




文件复制

 

Java代码 
  1. public class FileCopyTest {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) throws Exception{  
  7.         // TODO Auto-generated method stub  
  8.           
  9.         File srcfile = new File("c:\\Test.java");  
  10.           
  11.         File destfile = new File("c:\\Test.java.bak");  
  12.           
  13.           
  14.         FileUtils.copyFile(srcfile, destfile);  
  15.   
  16.     }  
  17.   
  18. }  

 



文件复制指定的目录 

 

Java代码 
  1. public class FileCopyTest {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) throws Exception{  
  7.         // TODO Auto-generated method stub  
  8.           
  9.         File srcfile = new File("c:\\Test.java");  
  10.           
  11.         File destDir = new File("D:\\");  
  12.           
  13.           
  14.         FileUtils.copyFileToDirectory(srcfile, destDir);  
  15.   
  16.     }  
  17.   
  18. }  

 



网络流保存为文件 

 

Java代码 
  1. public class URLToFileTest {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) throws Exception{  
  7.         // TODO Auto-generated method stub  
  8.           
  9.         URL url = new URL("http://www.163.com");  
  10.           
  11.         File file = new File("c:\\163.html");  
  12.           
  13.         FileUtils.copyURLToFile(url, file);  
  14.   
  15.     }  
  16.   
  17. }  

 




文件目录操作 

 

Java代码 
  1. public class DirOper {  
  2.   
  3.     /** 
  4.      * @param args 
  5.      */  
  6.     public static void main(String[] args) throws Exception {  
  7.         // TODO Auto-generated method stub  
  8.   
  9.         File dir = new File("c:\\test");  
  10.   
  11.         FileUtils.cleanDirectory(dir);//清空目录下的文件  
  12.   
  13.         FileUtils.deleteDirectory(dir);//删除目录和目录下的文件  
  14.   
  15.     }  
  16.   
  17. }  

 




目录大小 

 

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

 




目录操作 

 

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

 




记录流的读取写入字节数 

 

Java代码 
  1. File test = new File( "test.dat" );  
  2.   
  3. //输出流的统计  
  4. CountingOutputStream countStream = null;  
  5.   
  6. //输入流的统计  
  7. //CountingInputStream countStream = null;  
  8.   
  9.   
  10.   
  11.   
  12. try {  
  13.   
  14.     FileOutputStream fos = new FileOutputStream( test );  
  15.   
  16.     countStream = new CountingOutputStream( fos );  
  17.   
  18.     countStream.write( "Hello".getBytes( ) );  
  19.   
  20. catch( IOException ioe ) {  
  21.   
  22.     System.out.println( "Error writing bytes to file." );  
  23.   
  24. finally {  
  25.   
  26.     IOUtils.closeQuietly( countStream );  
  27.   
  28. }  
  29.   
  30.   
  31.   
  32. if( countStream != null ) {  
  33.   
  34.     int bytesWritten = countStream.getCount( );  
  35.   
  36.     System.out.println( "Wrote " + bytesWritten + " bytes to test.dat" );  
  37.   
  38. }  

 




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

 

Java代码 
  1. File test1 = new File("split1.txt");  
  2.   
  3. File test2 = new File("split2.txt");  
  4.   
  5. OutputStream outStream = null;  
  6.   
  7.           
  8.   
  9. try {  
  10.   
  11.     FileOutputStream fos1 = new FileOutputStream( test1 );  
  12.   
  13.     FileOutputStream fos2 = new FileOutputStream( test2 );  
  14.   
  15.     //包含不同的文本  
  16.     outStream = new TeeOutputStream( fos1, fos2 );  
  17.   
  18.               
  19.   
  20.     outStream.write( "One Two Three, Test".getBytes( ) );  
  21.   
  22.     outStream.flush( );  
  23.   
  24. catch( IOException ioe ) {  
  25.   
  26.     System.out.println( "Error writing to split output stream" );  
  27.   
  28. finally {  
  29.   
  30.     IOUtils.closeQuietly( outStream );  
  31.   
  32. }  
分享到:
评论

相关推荐

    org.apache.commons.io.FileUtils

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

    org.apache.commons.io 包

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

    org.apache.commons jar

    2. **Apache Commons IO**: 该模块主要关注输入/输出操作,提供文件操作、流处理、读写二进制或文本数据的工具类。例如,FileUtils 提供了文件的创建、复制、移动和删除等操作,IOUtils 可以用于读取和写入流,或者...

    org.apache.commons 全部包

    5. **其他 Commons 组件**:除了上述组件,Apache Commons 还包括许多其他实用库,如 Commons Codec(编码解码工具)、Commons CLI(命令行接口解析)、Commons Configurations(配置文件处理)等,涵盖了网络、XML ...

    Java IO commons-io-2.5.jar

    import org.apache.commons.io.FileUtils; public class FileCopyExample { public static void main(String[] args) { try { FileUtils.copyFile(new File("源文件路径"), new File("目标文件路径")); } catch...

    org.apache.commons

    1. **IO**: Apache Commons IO 提供了大量与输入/输出流相关的实用工具类,如文件操作、流处理、数据转换等。例如,`FileUtils` 类提供了方便的文件操作方法,如复制、删除、移动等;`IOUtils` 类则提供了读写流的...

    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

    "commons-io-2.11.0.rar"是Apache Commons IO库的版本2.11.0的压缩包文件,包含了该版本的所有源代码、类库和相关的文档。 Apache Commons IO库的核心特性包括: 1. 文件操作:提供了一系列静态方法来操作文件,如...

    org.apache.commons.io.jar

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

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

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

    commons-io-2.6.jar

    1. 文件和目录操作:Apache Commons IO提供了一系列API用于创建、删除、复制和移动文件及目录。例如,`FileUtils.copyFile()`和`FileUtils.moveFile()`可以方便地实现文件的复制和移动,而`DirectoryWalker`类则用于...

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

    Apache Commons IO 是一个Java库,专注于提供各种I/O操作的实用工具类,这些操作包括文件、流、过滤器、读写、转换、检测等。在本案例中,我们讨论的是"commons-io-2.4"版本,这个版本包含了完整的Apache Commons IO...

    Apache commons-io-2.5.jar

    5. **效率优化**: Apache Commons IO库的实现通常考虑了性能和效率,尤其是在处理大文件或流时。例如,其内部使用缓冲技术来减少磁盘访问次数,提高操作速度。 6. **兼容性**: "2.5"这个版本意味着该库经过了多次...

    apache-commons所有jar包

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

    commons-fileupload-1.2.1.jar+commons-io-2.2.jar

    Apache Commons IO库则提供了大量实用的文件操作方法,如文件复制、移动、删除、读写等。在文件上传过程中,可能需要使用`IOUtils`类来读取或写入文件内容。例如,将上传的文件内容读取为字节数组: ```java import...

    commons-io-2.4-src.zip

    1. **文件操作**:`org.apache.commons.io.FileUtils` 类提供了大量的静态方法,用于执行文件和目录的各种操作,如复制、移动、删除、创建、读取等。例如,`copyFile()` 和 `copyDirectory()` 方法用于文件和目录的...

    apache.commons全套jar包下载

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

Global site tag (gtag.js) - Google Analytics