數據在電腦中是以文件的形式存在的,即文件是數據的載體
File
構造方法:
File(String pathname)
通過給定路徑名字符串轉化爲抽象路徑名來創建一個File實例
例:
File f=new File("D:\\abc")//封裝目錄
File f1=new File("D:\\abc.txt") //封裝文件
相對路徑與絕對路徑
相對路徑:不帶盤符號的路徑,使用IDEA時,若採用相對路徑生成的文件是存儲在當前Project的根目錄之下
絕對路徑:帶有盤符號的完整路徑
常用方法
1.創建文件,目錄
import java.io.File;
import java.io.IOException;
public class demo1 {
public static void main(String[] args) throws IOException {
File file=new File("D:\\1234.txt");
boolean b = file.createNewFile();//判斷文件是否存在,若存不存在則創建並返回true,若存在則返回false
System.out.println(b);
File file1=new File("D:\\1234");
boolean b1 = file1.mkdir();//創建單級目錄
System.out.println(b1);
File file2=new File("D:\\1234\\456");
boolean b2=file2.mkdirs();//創建多級目錄,結果爲在D盤中創建123目錄在1234中創建456目錄,創建成功返回true
System.out.println(b2);
}
}
true
true
true
2.刪除
boolean b = file.delete();//返回值表示是否刪除成功
注意:delete只能刪除掉空的目錄,非空無法直接用delete刪除
遞歸刪除非空文件夾
import java.io.File;
public class demo{
public static void main(String[] args) {
File file=new File("D:\\123");
digui(file);
}
private static void digui(File file) {
if (file.isFile()) {
file.delete();
}
if (file.listFiles()!=null){
File[] files = file.listFiles();
for (File file1 : files) {
digui(file1);
}
}
file.delete();
}
}
4.重命名文件
file.renameTo(new File())//重命名文件,如果使用相對路徑則會將原文件改名並剪切到IDEA當前project目錄下,使用絕對路徑則與原文件路徑一致
5.關於獲得的一些操作
import java.io.File;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
String name = file.getName();//獲得文件名
long length=file.length();//獲得文件的大小
String s=file.getAbsolutePath();//獲得絕對路徑,返回字符串形式
File s1=file.getAbsoluteFile();//獲取絕對路徑,返回file類型
long l=file.lastModified();//獲取文件最後的修改時間
}
}
6.判斷的一些操作
import java.io.File;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
boolean b=file.isDirectory();//判斷是否是目錄
boolean b1=file.isFile();//判斷是否是文件
boolean b2=file.canRead();//判斷是否可讀
boolean b3=file.canWrite();//判斷是否可以寫
boolean b4=file.canExecute();//判斷是否是可執行文件
boolean b5=file.isHidden();//判斷文件是否是隱藏的
}
}
注意:
win系統中所有文件類型都是可執行的,所以不論使用什麼類型的文件來測試canExecute()方法得到的返回值都是true
7.獲取目錄下所有的內容
import java.io.File;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
File[] files = file.listFiles();//將目錄下的所有內容以file形式存入數組中
String[] list = file.list();//將目錄下所有的內容放以字符串形式入一個數組中
}
}
該方法中可以傳入一個過濾器參數,來過濾出想要的文件類型
例:使用過濾器篩選出txt文件
import java.io.File;
import java.io.FilenameFilter;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//dir 父目錄 name 文件名
File f=new File(dir,name);
if (f.isFile()&&f.getName().endsWith(".txt")){
return true;
}else {
return false;
}
}
});
}
}