Java.io.File類中的File類,從JDK1.0開始就支援. 後面相繼推出的java.nio.file及java.nio.file.Files類等對file類進行了優化和改進。但目前仍有一些程式用的有java.io.file,是以仍然需要學習。Files類下一節講解。
File類與java.io中定義的大多流式(輸入流、輸出流等)不同,File類是直接處理檔案和檔案系統的, 即沒有指定資料是怎樣從系統檔案中讀取或是寫入的。
File類用于表示檔案或是目錄,隻表示檔案或目錄的檔案名、目錄、大小等基本資訊,不能用于檔案内容的通路。通路檔案内容可以用RandomAccessFile類和流等。
下面是File類常用的方法:
1 .file的構造方法 ,得到的是一個指向檔案或是目錄的引用(指針),并沒有建立檔案
File file=new File("d:\\users\\ww");
File file1=new File("d:/users/日記.txt"); //注意用 ‘\\’ 或是 ‘/’ 表示分隔符
File file2=new File("d:\\users","日記.txt"); //"日記.txt"是"d:\\users"下的子目錄
2.判斷 file 是不是目錄,是不是檔案 ,存不存在
file.isDirectory(); //file是不是個目錄
file.isFile(); //file是不是個檔案
file.exists(); //file存不存在,一般在對檔案進行具體操作,比如,複制,移動的等都要先判斷是否存在
3.建立目錄、建立檔案 ,都會在磁盤上真實建立
file.mkdir(); //建立目錄
file.mkdis(); //建立多級目錄
file3.createNewFile(); //建立檔案
具體附上代碼:
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) {
File file=new File("d:\\users\\ww");
File file1=new File("d:/users/www/ssw");
File file2=new File("d:\\users","日記.txt");
if(!file1.exists()){
file1.mkdirs(); //建立檔案
}else{
file1.delete(); //删除檔案
}
System.out.println("file1檔案是否存在:"+file1.exists()); //判斷檔案目錄是否存在true、false
//判斷是否是個目錄
System.out.println("file1檔案是否是個目錄:"+file1.isDirectory());
//判斷是否是個檔案
System.out.println("file1檔案是否是個檔案:"+file1.isFile());
if(!file2.exists()){
try {
file2.createNewFile(); //建立檔案
} catch (IOException e) {
e.printStackTrace();
}
}else{
file2.delete();
}
//常用的File對象的API
System.out.println(file1); //列印的是檔案全路徑,即 d:\users\www\ssw
System.out.println(file1.getName()); //列印的是子目錄(檔案)的名字 ssw
System.out.println(file2.getName()); //日記.txt
System.out.println(file1.getParentFile()); //d:\users\www
System.out.println(file2.getParentFile()); //d:\users
}
}
運作結果:
file1檔案是否存在:true
file1檔案是否是個目錄:true
file1檔案是否是個檔案:false
d:\users\www\ssw
ssw
日記.txt
d:\users\www
d:\users