Java 文件操作
java 文件操作
在 java 程序開發中,我們對文件進行操作,比如創建文件或目錄、讀寫文件等。java 提供了文件封裝類 java.io.file 用于操作硬盤上的文件目錄。
1. 創建目錄
file類中有兩個方法可以用來創建文件夾:
- mkdir( )方法創建一個文件夾,成功則返回true,失敗則返回false。失敗表明file對象指定的路徑已經存在,或者由于整個路徑還不存在,該文件夾不能被創建。
- mkdirs()方法創建一個文件夾和它的所有父文件夾。
下面的例子創建 "/tmp/user/java/bin"文件夾:
import java.io.file; public class createdir { public static void main(string[] args) { string dirname = "/tmp/user/java/bin"; file d = new file(dirname); // 現在創建目錄 d.mkdirs(); } }
編譯并執行上面代碼來創建目錄 "/tmp/user/java/bin"。
注意: java 在 unix 和 windows 自動按約定分辨文件路徑分隔符。如果你在 windows 版本的 java 中使用分隔符 (/) ,路徑依然能夠被正確解析。
2. 讀取目錄
一個目錄其實就是一個 file 對象,它包含其他文件和文件夾。
如果創建一個 file 對象并且它是一個目錄,那么調用 isdirectory() 方法會返回 true。
可以通過調用該對象上的 list() 方法,來提取它包含的文件和文件夾的列表。
下面展示的例子說明如何使用 list() 方法來檢查一個文件夾中包含的內容:
import java.io.file; public class dirlist { public static void main(string args[]) { string dirname = "/tmp"; file f1 = new file(dirname); if (f1.isdirectory()) { system.out.println("目錄 " + dirname); string s[] = f1.list(); for (int i = 0; i < s.length; i++) { file f = new file(dirname + "/" + s[i]); if (f.isdirectory()) { system.out.println(s[i] + " 是一個目錄"); } else { system.out.println(s[i] + " 是一個文件"); } } } else { system.out.println(dirname + " 不是一個目錄"); } } }
以上范例編譯運行結果如下:
目錄 /tmp bin 是一個目錄 lib 是一個目錄 demo 是一個目錄 test.txt 是一個文件 readme 是一個文件 index.html 是一個文件 include 是一個目錄
3. 刪除目錄或文件
刪除文件可以使用 java.io.file.delete() 方法。
以下代碼會刪除目錄 /tmp/java/,需要注意的是當刪除某一目錄時,必須保證該目錄下沒有其他文件才能正確刪除,否則將刪除失敗。
測試目錄結構:
/tmp/java/ |-- 1.log |-- test
import java.io.file; public class deletefiledemo { public static void main(string[] args) { // 這里修改為自己的測試目錄 file folder = new file("/tmp/java/"); deletefolder(folder); } // 刪除文件及目錄 public static void deletefolder(file folder) { file[] files = folder.listfiles(); if (files != null) { for (file f : files) { if (f.isdirectory()) { deletefolder(f); } else { f.delete(); } } } folder.delete(); } }