File檔案操作類
阿新 • • 發佈:2018-12-09
Java.io包中,File類是唯一一個與檔案本身操作(建立、刪除、取得資訊)有關,與檔案內容無關的程式類。
1.File類的基本使用(即可描述真實檔案,也可是個資料夾)
File類的兩種例項化方式:
- public File(String pathname) :傳入檔案的絕對路徑
- public File(String parent,String child):設定父路徑和子路徑
1. 建立新檔案:
public boolean createNewFile() throws IOException
1.取得file物件 File file = new File("路徑\建立的檔名(JavaIO)"); file.createNewFile();
2. 判斷檔案是否存在:
public boolean exists()
if(file.exists()){
...
}
3. 刪除檔案:
public boolean delete()
if(file.exist()){ //首先需要判斷檔案是否存在,存在之後才能將其刪除
file.delete();
}
4.路徑分隔符: // —> File.separator
File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo" + File.separator + "Desktop");
2.目錄操作
1.取得父路徑與父File物件
public String getParent()
public File getParentFile()
2.建立目錄
public boolean mkdirs() :無論有多少級父目錄都會一次性建立
public class Test { public static void main(String[] args)throws Exception { File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo" + File.separator + "Desktop" + File.separator + "www"+ File.separator +"bit"+ File.separator +"java"+ File.separator +"test.txt"); //取得父檔案物件 File parentFile = file.getParentFile(); if(!parentFile.exists()){ //如果檔案不存在就遞迴建立 parentFile.mkdirs(); } if(file.exists()){ file.delete(); }else{ file.createNewFile(); } } }
3.取得檔案資訊
- 判斷File物件是否是檔案
public boolean isFile() - 判斷File物件是否是路徑
public boolean isDirectory()
public class Solution {
public static void main(String[] args)throws Exception {
File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo"
+ File.separator + "Desktop" + File.separator + "www"+ File.separator +"bit"+
File.separator +"java"+ File.separator +"test.txt"); //File物件是檔案
File parentFile = file.getParentFile(); //File物件是路徑
if(!parentFile.exists()){
parentFile.mkdirs();
}
if(!file.exists()) {
file.createNewFile();
}
if(parentFile.isDirectory()){
System.out.println("patrenFile是路徑");
}
if(file.isFile()){
System.out.println("file是檔案");
}
}
}
輸出結果:
patrenFile是路徑
file是檔案
- 取得檔案大小
public long length() 位元組/1024 :KB
System.out.println(file.length()/1024);
- 取得最後修改日期
public long lastModified()
System.out.println(new Date(file.lastModified()));
- 列舉一個目錄的全部組成:
public File[ ] listFiles()
File[] files = file.listFiles();
for(File file : files){
system.out.println(file)
}
時間操作:
long start = System.currentTimeMillis();
long end =System.currentTimeMillis();
IO相關處理屬於阻塞式耗時操作,一般放在子執行緒中進行。