Java IO--File類
1、創建一個新文件

import java.io.File ; import java.io.IOException ; public class FileDemo01{ public static void main(String args[]){ File f = new File("d:\\test.txt") ; // 實例化File類的對象 try{ f.createNewFile() ; // 創建文件,根據給定的路徑創建 }catch(IOException e){ e.printStackTrace() ; // 輸出異常信息 } } };

import java.io.File ; import java.io.IOException ; public class FileDemo02{ public static void main(String args[]){ System.out.println("pathSeparator:" + File.pathSeparator) ; // 調用靜態常量 System.out.println("separator:" + File.separator) ; // 調用靜態常量 } };如果要想讓java程序繼續保持可移植性,那麼在編寫路徑的時候就應該使用File類中的常量。
修改之前的程序:
import java.io.File ; import java.io.IOException ; public class FileDemo03{ public static void main(String args[]){ File f = new File("d:"+File.separator+"test.txt") ; // 實例化File類的對象 try{ f.createNewFile() ; // 創建文件,根據給定的路徑創建 }catch(IOException e){ e.printStackTrace() ; // 輸出異常信息 } } };注意:在操作文件的時候一定要注意分隔符,使用File.separator表示。
2、刪除一個指定的文件

import java.io.File ; import java.io.IOException ; public class FileDemo04{ public static void main(String args[]){ File f = new File("d:"+File.separator+"test.txt") ; // 實例化File類的對象 f.delete() ; // 刪除文件 } };

import java.io.File ; import java.io.IOException ; public class FileDemo05{ public static void main(String args[]){ File f = new File("d:"+File.separator+"test.txt") ; // 實例化File類的對象 if(f.exists()){ // 如果文件存在則刪除 f.delete() ; // 刪除文件 } } };
3、綜合創建、刪除文件的操作
現在有以下一個要求:給定一個路徑,如果此文件存在,則刪除,如果文件不存在,則創建一個新的文件。
import java.io.File ; import java.io.IOException ; public class FileDemo06{ public static void main(String args[]){ File f = new File("d:"+File.separator+"test.txt") ; // 實例化File類的對象 if(f.exists()){ // 如果文件存在則刪除 f.delete() ; // 刪除文件 }else{ try{ f.createNewFile() ; // 創建文件,根據給定的路徑創建 }catch(IOException e){ e.printStackTrace() ; // 輸出異常信息 } } } };從程序的運行結果中可以發現,所有的操作並不會立刻執行,因為java是通過jvm與地層進行交互的,所以所有的操作需要經過jvm完成,那麼就有可能產生延遲。
對於文件的後綴,是可有可無的。





4、創建一個文件夾

import java.io.File ; import java.io.IOException ; public class FileDemo07{ public static void main(String args[]){ File f = new File("d:"+File.separator+"mldn") ; // 實例化File類的對象 f.mkdir() ; // 創建文件夾 } };
5、列出指定目標的全部內容


操作一:使用list()列出全部內容
import java.io.File ; import java.io.IOException ; public class FileDemo08{ public static void main(String args[]){ File f = new File("d:"+File.separator) ; // 實例化File類的對象 String str[] = f.list() ; // 列出給定目錄中的內容 for(int i=0;i<str.length;i++){ System.out.println(str[i]) ; } } };以上隻是列出了全部的名字,包括文件夾的名字、文件的名字。
操作二:使用listFiles()列出
import java.io.File ; import java.io.IOException ; public class FileDemo09{ public static void main(String args[]){ File f = new File("d:"+File.separator) ; // 實例化File類的對象 File files[] = f.listFiles() ; // 列出全部內容 for(int i=0;i<files.length;i++){ System.out.println(files[i]) ; } } };列出的是一個完整的路徑,這樣對於程序本身來說是很容易進行其他操作的。
6、判斷一個給定的路徑是否是目錄

import java.io.File ; import java.io.IOException ; public class FileDemo10{ public static void main(String args[]){ File f = new File("d:"+File.separator) ; // 實例化File類的對象 if(f.isDirectory()){ // 判斷是否是目錄 System.out.println(f.getPath() + "路徑是目錄。") ; }else{ System.out.println(f.getPath() + "路徑不是目錄。") ; } } };
7、實例:列出指定目錄的全部內容
如果給定了一個目錄,則要求將此目錄中的全部文件都列出來,但是列的時候會在存在子文件夾。

應該采用遞歸的調用形式。
import java.io.File ; import java.io.IOException ; public class FileDemo11{ public static void main(String args[]){ File my = new File("d:" + File.separator) ; // 操作路徑 print(my) ; } public static void print(File file){ // 遞歸調用 if(file!=null){ // 判斷對象是否為空 if(file.isDirectory()){ // 如果是目錄 File f[] = file.listFiles() ; // 列出全部的文件 if(f!=null){ // 判斷此目錄能否列出 for(int i=0;i<f.length;i++){ print(f[i]) ; // 因為給的路徑有可能是目錄,所以,繼續判斷 } } }else{ System.out.println(file) ; // 輸出路徑 } } } };
最後更新:2017-04-03 14:53:52