使用org apache commons io FileUtils IOUtils 工具類操作檔案
阿新 • • 發佈:2018-12-20
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 ); } } }