您的位置:首页 > 运维架构 > Apache

org.apache.commons.io.FileUtils的使用

2017-03-10 16:33 351 查看
org.apache.commons.io.FileUtils快速读写文件

 
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方便读写文件的工具类:

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 工具类 代码

输入流复制到 输出流 

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

}  

1.文件内容拷贝: 

import java.io.File; 

import java.io.FileWriter; 

import java.io.IOException; 

import java.io.InputStream; 

import java.io.Writer; 

import org.apache.commons.io.FileUtils; 

import org.apache.commons.io.IOUtils; 

publicclass FileCopyExample { 

    publicstaticvoid main(String[] args) { 

       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 =FileCopyExample.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 =FileCopyExample.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" ); 

       } 

    } 



2.文件删除: 

File file = new File( ("io/project.properties") ); 

       String display = FileUtils.byteCountToDisplaySize( file.length() ); 

       System.out.println( "project.xml is " + display ); 

       FileUtils.forceDelete(file) 

3.读取取文本中的每一行: 

import java.io.File; 

import java.io.IOException; 

import java.util.List; 

import org.apache.commons.io.FileSystemUtils; 

import org.apache.commons.io.FileUtils; 

public class Test { 

       /** 

        * @param args 

        * @throws IOException 

        */ 

       public static void main(String[] args) throws IOException { 

              // TODO Auto-generated method stub 

              File file = new File((Test.class.getClass().getResource("/io/web.xml")).getFile()); 

               List lines = FileUtils.readLines(file, "UTF-8"); 

               for(int i=0;i<lines.size();i++) 

               System.out.println(lines.get(i)); 

       } 

}   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: