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

    xiaoxiao2021-03-25  81

    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));         }  }   
    转载请注明原文地址: https://ju.6miu.com/read-22291.html

    最新回复(0)