1. 程式人生 > >使用org apache commons io FileUtils IOUtils 工具類操作檔案

使用org apache commons io FileUtils IOUtils 工具類操作檔案

               
File src = new File("G:/2012/portal/login.jsp");File tar = new File("G:/2012/portal/loginZs.jsp");File tarDir = new File("G:/2012/portal/center/");FileUtils.copyFile(src,tar);//複製檔案FileUtils.copyFileToDirectory(src, tarDir);//複製檔案到指定資料夾

Commons IO是apache的一個開源的工具包,封裝了IO操作的相關類,使用Commons IO可以很方便的讀寫檔案,

FileUtils 中提供了許多設計檔案操作的 已封裝好的方法。

IOUtils 則是提供了讀寫檔案的方法。

讀取檔案:

// by FileUtils  List<String> lines = FileUtils.readLines(file, "UTF-8");    // by IOUtils  List<String> lines = IOUtils.readLines(new FileInputStream(file), "UTF-8");  
寫入檔案:
// by FileUtils  FileUtils.writeLines(file, "UTF-8", lines);    // by IOUtils  IOUtils.writeLines(lines, null, new FileOutputStream(file));  
public class IoTest {        /**      * @param args      */      public static void main(String[] args) throws Exception {          // 輸入流複製到 輸出流         Writer write = new FileWriter("c:\\kk.dat");            InputStream ins = new FileInputStream(new File("c:\\text.txt"));            IOUtils.copy(ins, write);          write.close();            ins.close();                  //文字寫入指定檔案 
        String name = "my name is panxiuyan";                    File file =  new File("c:\\name.txt");                    FileUtils.writeStringToFile(file, name);                  //將輸入流轉換成文字                 URL url = new URL("http://www.dimurmill.com");                    InputStream ins = url.openStream();                    String contents = IOUtils.toString(ins,"UTF-8");          System.out.println( "Slashdot: " + contents );         //關閉相關流      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);          }              }          //檔案複製        File srcfile = new File("c:\\Test.java");            File destfile = new File("c:\\Test.java.bak");            FileUtils.copyFile(srcfile, destfile);             //檔案複製指定的目錄      File srcfile = new File("c:\\Test.java");            File destDir = new File("D:\\");          FileUtils.copyFileToDirectory(srcfile, destDir);           //網路流儲存為檔案   URL url = new URL("http://www.163.com");           File file = new File("c:\\163.html");              FileUtils.copyURLToFile(url, file);                  //檔案目錄操作         File dir = new File("c:\\test");          FileUtils.cleanDirectory(dir);//清空目錄下的檔案          FileUtils.deleteDirectory(dir);//刪除目錄和目錄下的檔案                 //目錄大小          long size = FileUtils.sizeOfDirectory(dir);                  //目錄操作        File testFile = new File( "testFile.txt" );          //如果不存在,新建          // 如果存在,修改檔案修改時間       FileUtils.touch( testFile );       //記錄流的讀取寫入位元組數      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" );    }        //相同的內容寫入不同的文字   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 );         }    }    }