java開發(fā)之File類詳細(xì)使用方法介紹
File類簡介
在 Java 中,F(xiàn)ile 類是 java.io 包中唯一代表磁盤文件本身的對象。File 類定義了一些與平臺無關(guān)的方法來操作文件,F(xiàn)ile類主要用來獲取或處理與磁盤文件相關(guān)的信息,像文件名、 文件路徑、訪問權(quán)限和修改日期等,還可以瀏覽子目錄層次結(jié)構(gòu)。
File 類表示處理文件和文件系統(tǒng)的相關(guān)信息。也就是說,F(xiàn)ile 類不具有從文件讀取信息和向文件寫入信息的功能,它僅描述文件本身的屬性。
File類的相關(guān)方法
1、構(gòu)造方法
File(String pathname) 通過將給定路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建一個新 File 實例。
File(String parent,String child) 根據(jù)指定的父路徑和文件路徑創(chuàng)建一個新File對象實例
File(File parent,String child) 根據(jù)指定的父路徑對象和文件路徑創(chuàng)建一個新的File對象實例
代碼實現(xiàn)過程
/*
- File的構(gòu)造函數(shù)
- */
public static void main(String[] args) {
//File(String pathname) 將指定路徑名轉(zhuǎn)換成一個File對象
File file = new File("D:\\1.txt");
System.out.println(file);
//File(String parent,String child) 根據(jù)指定的父路徑和文件路徑創(chuàng)建File對象
File file1 = new File("D:\\a","1.txt");
System.out.println(file1);
//File(File parent,String child) 根據(jù)指定的父路徑對象和文件路徑創(chuàng)建File對象
File parent = new File("D:\\a");
File file2 = new File(parent, "1.txt");
System.out.println(file2);
File file3 = new File(new File("D:\\a"),"1.txt");
System.out.println(file3);
}
運(yùn)行結(jié)果

2、File類創(chuàng)建和刪除功能
boolean createNewFile();指定路徑不存在該文件時創(chuàng)建文件,返回true 否則false
boolean mkdir() 當(dāng)指定的單擊文件夾不存在時創(chuàng)建文件夾并返回true 否則false
boolean mkdirs() 但指定的多級文件夾在某一級文件夾不存在時,創(chuàng)建多級文件夾并返回true 否則false
boolean delete() 刪除文件或者刪除單級文件夾
刪除文件夾,這個文件夾下面不能有其他的文件和文件夾
代碼實現(xiàn)過程
public static void main(String[] args) throws IOException {
File file = new File("D:\\a\\1.txt");
File file1 = new File("1.txt");
boolean flag = file1.createNewFile();
System.out.println(flag);
File file2 = new File("b");
boolean flag2 = file2.mkdir();
System.out.println(flag);
File file3 = new File("c\\d\\e");
boolean d = file1.mkdir();
boolean c = file1.mkdirs();
System.out.println(d);
System.out.println(c);
File file4 = new File("c.txt");
System.out.println(file4.mkdir());
File file5 = new File("b");
System.out.println(file2.delete());
}
運(yùn)行結(jié)果

3、File類的判斷功能
boolean exists() 判斷指定路徑的文件或文件夾是否為空
boolean isAbsolute() 判斷當(dāng)前路徑是否是絕對路徑
boolean isDirectory() 判斷當(dāng)前的目錄是否存在
boolean isFile() 判斷當(dāng)前的目錄是否是一個文件
boolean isHidden() 判斷當(dāng)前路徑是否是一隱藏文件
代碼實現(xiàn)過程
public static void main(String[] args) throws IOException {
// method();
// method2();
// method3();
// method4();
}
//判斷文件是否存在
public static void method() throws IOException {
File file = new File("a.txt");
file.createNewFile();
boolean flag = file.exists();
System.out.println(flag);
}
//判斷當(dāng)前路徑是否為絕對路徑
public static void method2() throws IOException{
File file = new File("D:\\a\\1.txt");
boolean flag = file.isAbsolute();
System.out.println(flag);
}
//判斷當(dāng)前是文件夾還是文件
public static void method3() throws IOException{
File file = new File("1.txt");
File file1 = new File("b");
file1.mkdir();
boolean flag = file.isDirectory();
boolean flag2 = file1.isFile();
System.out.println(flag);
System.out.println(flag2);
}
//判斷當(dāng)前路徑是否為隱藏文件
public static void method4() throws IOException{
File file = new File("D:\\a\\1.txt");
System.out.println(file.isHidden());
}
運(yùn)行結(jié)果
method()

method2()

method3()

method4()

4、File類的獲取功能和修改名字功能
File getAbsoluteFile() 獲取文件的絕對路徑,返回File對象
String getAbsolutePath() 獲取文件的絕對路徑,返回路徑的字符串
String getParent() 獲取當(dāng)前路徑的父級路徑,以字符串形式返回該父級路徑
String getName() 獲取文件或文件夾的名稱
String getPath() 獲取File對象中封裝的路徑
long lastModified() 以毫秒值返回最后修改時間
long length() 返回文件的字節(jié)數(shù)
boolean renameTo(File dest) 將當(dāng)前File對象所指向的路徑修改為指定File所指向的路徑
代碼實現(xiàn)過程:
public static void main(String[] args) throws IOException {
// method();
// method2();
// method3();
// method4();
}
public static void method(){
File file = new File("D:\\a\\1.txt");
File file1 = new File("1.txt");
//以File對象返回的形式返回當(dāng)前File對象所指向的絕對路徑
System.out.println(file1.getAbsoluteFile());
//返回File對象所指向的絕對路徑
System.out.println(file1.getAbsolutePath());
}
public static void method2() throws IOException {
File file = new File("a.txt");
File file1 = new File("b","c.txt");
System.out.println(file1.createNewFile());
File parent = new File("b");
File file2 = new File(parent,"c.txt");
if (!parent.exists()){
parent.mkdirs();
}
System.out.println(file2.createNewFile());
System.out.println(file2.getParent());
System.out.println(file2.getParentFile());
}
public static void method3() throws IOException{
File file = new File("1.txt");
File file1 = new File("D:\\a\\1.txt");
File file2 = new File("b");
System.out.println(file.getName());
System.out.println(file1.getName());
System.out.println(file2.getName());
System.out.println(file.getPath());
System.out.println(file1.getPath());
System.out.println(file2.getPath());
System.out.println(file.lastModified());
Date date = new Date(1556085068524L);
System.out.println(date.toLocaleString());
System.out.println(file.length());
System.out.println(file2.length());
}
public static void method4() throws IOException{
File file = new File("a.txt");
File file1 = new File("e.txt");
System.out.println(file.renameTo(file1));
}
運(yùn)行結(jié)果
method()

method2()

method3()

method4()

5、File 類的其他獲取功能
String[] list(); 以字符串的形式返回當(dāng)前路徑下所有的文件和文件夾的名稱
File[] listFile 以File對象的形式返回當(dāng)前路徑下的所有文件和文件夾名稱
Static File[] listRoots() 獲取計算機(jī)中的所有盤符
代碼實現(xiàn)過程
public static void main(String[] args) {
//method();
// method2();
//method3();
}
public static void method(){
File file = new File("b");
File file1 = new File("D:\\QQ\\1916247350");
File file2 = new File("e.txt");
String[] files = file1.list();
for (int i=0;i<files.length;i++){
System.out.println(files[i]);
}
}
public static void method2(){
File file = new File("b");
File file1 = new File("D:\\QQ\\1916247350");
File file2 = new File("e.txt");
File[] files = file1.listFiles();
for (File file3 : files) {
System.out.println(file3.getName());
}
}
public static void method3(){
File[] files = File.listRoots();
for (File file : files) {
System.out.println(file);
}
}
運(yùn)行結(jié)果
method()

method2()

method(3)

練習(xí)
1、輸出指定目錄下的所有java文件
public static void main(String[] args) {
File file = new File("D:\\IDEA\\IDEAprogram");
method(file);
}
public static void method(File file){
//判斷文件是夠是目錄文件
if (file.isDirectory()){
File[] files = file.listFiles();
for (File file1 : files) {
//判斷是否為文件
if (file1.isFile()){
//判斷文件是否是以.java結(jié)尾的文件
if (file1.getName().endsWith(".java")){
System.out.println(file1.getName());
}
}else if (file1.isDirectory()){
//回調(diào),遍歷file1
method(file1);
}
}
}
}
運(yùn)行結(jié)果

2、刪除指定的目錄(包括子目錄)
public static void main(String[] args) {
File file = new File("D:\\a");
method(file);
}
//刪除指定目錄下的文件
public static void method(File file){
//刪除自己所有的子文件和子目錄
//獲取子文件和子目錄
if (file.isDirectory()){
File[] files = file.listFiles();
for (File file1 : files) {
if (file1.isFile()){
System.out.println(file1.getName());
//干掉它
file1.delete();
}else if (file1.isDirectory()){
//繼續(xù)查看
method(file1);
}
}
//干掉自己
System.out.println(file.getName());
file.delete();
}
}
代碼運(yùn)行結(jié)果

本文介紹了java開發(fā)過程中File類的詳細(xì)使用方法,更多關(guān)于File類使用方法請查看下面的相關(guān)鏈接
相關(guān)文章
Spring Boot利用Lombok減少Java中樣板代碼的方法示例
spring Boot是非常高效的開發(fā)框架,lombok是一套代碼模板解決方案,將極大提升開發(fā)的效率,下面這篇文章主要給大家介紹了關(guān)于Spring Boot利用Lombok減少Java中樣板代碼的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
java中數(shù)組的相關(guān)知識小結(jié)(推薦)
下面小編就為大家?guī)硪黄猨ava中數(shù)組的相關(guān)知識小結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
RabbitMQ中的channel信道、exchange交換機(jī)和queue隊列詳解
這篇文章主要介紹了RabbitMQ中的channel信道、exchange交換機(jī)和queue隊列詳解,connection是指物理的連接,一個client與一個server之間有一個連接,一個連接上可以建立多個channel,可以理解為邏輯上的連接,需要的朋友可以參考下2023-08-08
springboot如何實現(xiàn)異步響應(yīng)請求(前端請求超時的問題解決)
這篇文章主要給大家介紹了關(guān)于springboot如何實現(xiàn)異步響應(yīng)請求(前端請求超時的問題解決)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用springboot具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-01-01

