1. 程式人生 > >Java File類常用方法及實例

Java File類常用方法及實例

獲取 而且 exist exc file類 註釋 sys 遞歸遍歷 cep

創建:
createNewFile()在指定位置創建一個空文件,成功就返回true,如果已存在就不創建,然後返回false。
mkdir() 在指定位置創建一個單級文件夾。
mkdirs() 在指定位置創建一個多級文件夾。
renameTo(File dest)如果目標文件與源文件是在同一個路徑下,那麽renameTo的作用是重命名, 如果目標文件與源文件不是同一個路徑下,那麽renameTo的作用就是剪切,而且還不能操作文件夾。

刪除:
delete() 刪除文件或者一個空文件夾,不能刪除非空文件夾,馬上刪除文件,返回一個布爾值。
deleteOnExit()jvm退出時刪除文件或者文件夾,用於刪除臨時文件,無返回值。

判斷:
exists() 文件或文件夾是否存在。
isFile() 是否是一個文件,如果不存在,則始終為false。
isDirectory() 是否是一個目錄,如果不存在,則始終為false。
isHidden() 是否是一個隱藏的文件或是否是隱藏的目錄。
isAbsolute() 測試此抽象路徑名是否為絕對路徑名。
boolean canExecute()判斷文件是否可執行
boolean canRead()判斷文件是否可讀
boolean canWrite() 判斷文件是否可寫

獲取:
getName() 獲取文件或文件夾的名稱,不包含上級路徑。
getAbsolutePath()獲取文件的絕對路徑,與文件是否存在沒關系
length() 獲取文件的大小(字節數),如果文件不存在則返回0,如果是文件夾也返回0。
getParent() 返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回null。
lastModified()獲取最後一次被修改的時間。

文件夾相關:
static File[] listRoots()列出所有的根目錄(Window中就是所有系統的盤符)
list() 返回目錄下的文件或者目錄名,包含隱藏文件。對於文件這樣操作會返回null。
listFiles() 返回目錄下的文件或者目錄對象(File類實例),包含隱藏文件。對於文件這樣操作會返回null。
list(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操作會返回null。
listFiles(FilenameFilter filter)返回指定當前目錄中符合過濾條件的子文件或子目錄。對於文件這樣操作會返回null。



********************實例********************


import java.io.File;

1.在指定位置創建文件creatNewFile()
File myFile = new File("D:\\test.txt");
if(!myFile.exists){
myFile.mkdir();//創建文件夾

myFile.creatNewFile();創建文件
}


2.在指定位置創建文件夾mkdir()
File myFile = new File("D:\\yxy");
if(!myFile.exists){
myFile.mkdir();//創建文件夾
}

3.在指定位置創建一個多級文件夾mkdirs()
File myFile = new File("D:/yxy");
if(!myFile.exists){
//如果父目錄存在,則直接在父目錄中創建子目錄;如果父目錄不存在,遞歸創建所有目錄
myFile.mkdirs();
}



4.使用遞歸遍歷目錄:
public class Test2 {

public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//生成新的listFiles()
yxyfile();//使用遞歸
}else{
System.out.println(fd);
}
}
}


5.清空目錄下的所有文件夾和文件
①方法一:
public class Test2 {

public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
//第一個for循環用於刪除文件
ArrayList<File> dirname=new ArrayList<File>();//用於保存目錄
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//生成新的listFiles()
dirname.add(fd);
yxyfile();//使用遞歸
}else{
System.out.println(fd);
fd.delete();//刪除所有的文件
}
//刪除空目錄
for(File dir:dirname){
dir.delete();
}}}}

②方法二:
public class Test2 {

public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
//第一個for循環用於刪除文件
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//生成新的listFiles()
yxyfile();//使用遞歸
}else{
System.out.println(fd);
fd.delete();//刪除所有的文件
}
//刪除空目錄
File[] dir=myFile.listFiles();//剩下的空文件夾
for(int i=0;i<dir.length;i++){
dir[i].delete();
}}}}

③方法三(調用cmd,簡單):
public class Test1 {

public static void main(String[] args) {
try {
String cmd = "cmd.exe /c rd /s/q E:\\yxy";
Runtime.getRuntime().exec(cmd);
System.out.println("yes");
} catch (Exception e) {
System.out.println("Error");
} }}

:/s代表刪除所有子目錄及子目錄下文件,/q代表刪除時不需再次確認,

6.list()和listFiles()的區別
File file=new File("E:\\xxx");
String[] filename1=file.list();//返回文件或目錄的名字
File[] filename2=file.listFiles();//返回文件或目錄的完整路徑
File[] filename3=file.listRoots();//列出所有根目錄(Window中就是所有系統的盤符)
for(String name1:filename1){System.out.println(name1);}
for(File name2:filename2){System.out.println(name2);}
for(File name3:filename3){System.out.println(name3);}

輸出:
list():
python內置進制轉換方法.png
python的面向對象.png
新建文件夾

listFiles():
E:\xxx\python內置進制轉換方法.png
E:\xxx\python的面向對象.png
E:\xxx\新建文件夾

listRoots():
C:\
D:\
E:\
Z:\

7.renameTo(File dest)
註釋:如果目標文件與源文件是在同一個路徑下,那麽renameTo的作用是重命名, 如果目標文件與源文件不是在同一個路徑下

,那麽renameTo的作用就是剪切,而且還不能操作文件夾。

①重命名:
File file=new File("E:\\xxx\\python的面向對象.png");
file.renameTo(new File("E:\\xxx\\py的面向對象.png"));

②移動文件:
File file=new File("E:\\xxx\\python的面向對象.png");
file.renameTo(new File("D:\\python的面向對象.png"));

8.調用CMD命令移動整個文件夾
try{
Runtime.getRuntime().exec("cmd.exe /c move E:\\xxx\\1 E:");
}catch(Exception e){
System.out.println("Error");
}

Java File類常用方法及實例