`
shixiaomu
  • 浏览: 383831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多
利用 org.apache.commons.io.FileUtils快速读写文件

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

  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源代码等.

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

    InputStream in = new URL( "http://laoyu.info" ).openStream();
     try {
       InputStreamReader inR = new InputStreamReader( in );
       BufferedReader buf = new BufferedReader( inR );
       String line;
       while ( ( line = buf.readLine() ) != null ) {
         System.out.println( line );
       }
     } finally {
       in.close();
     }

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

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

Commons IO里的常用类

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

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

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

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

文件复制代码:

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

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

    InputStream in = new
    URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
      byte [] gif = IOUtils.toByteArray(in);
      //IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif")));
      FileUtils.writeByteArrayToFile(new File("c:/test.gif"),gif);
      IOUtils.closeQuietly(in);





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

输入流复制到输出流
Java代码

    public class IoTest { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) throws Exception { 
            // TODO Auto-generated method stub 
            Writer write = new FileWriter("c:\\kk.dat"); 
     
            InputStream ins = new FileInputStream(new File("c:\\text.txt")); 
     
            IOUtils.copy(ins, write); 
            write.close(); 
     
            ins.close(); 
        } 
     
    } 



文本写入指定文件
Java代码

    public class FileWirterTest { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) throws Exception{ 
            // TODO Auto-generated method stub 
             
            String name = "my name is panxiuyan"; 
             
            File file =  new File("c:\\name.txt"); 
             
            FileUtils.writeStringToFile(file, name); 
     
        } 
     
    } 




将输入流转换成文本
Java代码

    public class URLIoTest { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) throws Exception { 
            // TODO Auto-generated method stub 
            URL url = new URL("http://www.dimurmill.com"); 
             
            InputStream ins = url.openStream(); 
             
            String contents = IOUtils.toString(ins,"UTF-8"); 
            System.out.println( "Slashdot: " + contents ); 
     
     
        } 
     
    } 



关闭相关流
Java代码

    public class IoCloseTest { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) { 
            // TODO Auto-generated method stub 
             
            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); 
            } 
     
        } 
     
    } 




文件复制
Java代码

    public class FileCopyTest { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) throws Exception{ 
            // TODO Auto-generated method stub 
             
            File srcfile = new File("c:\\Test.java"); 
             
            File destfile = new File("c:\\Test.java.bak"); 
             
             
            FileUtils.copyFile(srcfile, destfile); 
     
        } 
     
    } 



文件复制指定的目录
Java代码

    public class FileCopyTest { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) throws Exception{ 
            // TODO Auto-generated method stub 
             
            File srcfile = new File("c:\\Test.java"); 
             
            File destDir = new File("D:\\"); 
             
             
            FileUtils.copyFileToDirectory(srcfile, destDir); 
     
        } 
     
    } 



网络流保存为文件
Java代码

    public class URLToFileTest { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) throws Exception{ 
            // TODO Auto-generated method stub 
             
            URL url = new URL("http://www.163.com"); 
             
            File file = new File("c:\\163.html"); 
             
            FileUtils.copyURLToFile(url, file); 
     
        } 
     
    } 




文件目录操作
Java代码

    public class DirOper { 
     
        /**
         * @param args
         */ 
        public static void main(String[] args) throws Exception { 
            // TODO Auto-generated method stub 
     
            File dir = new File("c:\\test"); 
     
            FileUtils.cleanDirectory(dir);//清空目录下的文件 
     
            FileUtils.deleteDirectory(dir);//删除目录和目录下的文件 
     
        } 
     
    } 




目录大小
Java代码

    long size = FileUtils.sizeOfDirectory(dir); 




目录操作
Java代码

    File testFile = new File( "testFile.txt" ); 
     
         //如果不存在,新建 
     
        // 如果存在,修改文件修改时间 
     
        FileUtils.touch( testFile ); 
      




记录流的读取写入字节数
Java代码

    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" ); 
     
    } 




相同的内容写入不同的文本
Java代码

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

分享到:
评论

相关推荐

    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.4 包含了所有commons-io的jar包和源码

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

    apache.commons全套jar包下载

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

    commons-io-2.6.jar

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

    Apache commons-io-2.5.jar

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

    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()` 方法用于文件和目录的...

Global site tag (gtag.js) - Google Analytics