構造方法:
package test;
import java.io.File;
public class Main {
public static void main(String[] args) {
// File(String pathname)
// 通過將給定路徑名字符串轉換爲抽象路徑名來創建一個新 File 實例。
File file = new File("E:\\demo\\a.txt");
// File(String parent, String child)
// 根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例。
File file1 = new File("e:\\demo", "a.txt");
// File(File parent, String child)
// 根據 parent 抽象路徑名和 child 路徑名字符串創建一個新 File 實例。
File file2 = new File("E:\\demo");
File file3 = new File(file2, "a.txt");
//以上三種方法效果一樣
}
}
創建和刪除文件:
1、如果創建文件或目錄時沒有寫盤符路徑,則默認在醒目路徑下
2、Java中的刪除不走回收站
package test;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
//創建文件夾,如果存在不創建,並返回false。否則創建,返回true
File file = new File("e:\\demo");
System.out.println(file.mkdirs());
//這樣可以一次創建多個;E可以大寫也可以小寫
// for(int i = 0; i < 3; i++) {
// File file = new File("e:\\demo"+i);
// System.out.println(file.mkdirs());
// }
//在e:\\demo中建一個文件 a.txt
File file1 = new File(file, "a.txt");
//也可以File file1 = new File("e:\\demo\\a.txt");
//創建一個文件,如果不存在就創建,否則不創建
System.out.println(file1.createNewFile());//這裏需要拋出異常,所以main方法那裏需要加上 throws IOException
// 下邊兩句會報錯 Exception in thread "main" java.io.IOException: 系統找不到指定的路徑。
// File file2 = new File("e:\\test\\aaa");
// file2.createNewFile();
// 要想在某個目錄下創建內容,該目錄首先必須要存在
//創建多級目錄,只能創建文件夾
File file2 = new File("e:\\test\\aaa");
System.out.println(file2.mkdirs());
// 這裏創建的是一個名爲a.txt的文件夾
// File file2 = new File("e:\\test\\a.txt");
// System.out.println(file2.mkdirs());
//如果要刪除的目錄中含有文件或目錄的話,delete方法無法刪除
File file3 = new File("e:\\test");
System.out.println("delete:"+file3.delete());
//將file2中的aaa改名爲bbb
File newfile = new File("e:\\test\\bbb");
System.out.println(file2.renameTo(newfile));
//如果新文件名的路徑跟需改名的文件的路徑不同,則做的是改名加剪切
File nnewfile = new File("e:\\demo\\ccc");
System.out.println(newfile.renameTo(nnewfile));
}
}
獲取功能:
package test;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("e:\\a.txt");
//獲取絕對路徑
System.out.println(file.getAbsolutePath());
//獲取相對路徑
System.out.println(file.getPath());
//獲取名稱
System.out.println(file.getName());
//過去長度(字節數)
System.out.println(file.length());
//獲取最後一次的修改時間,毫秒值
Date d = new Date(file.lastModified());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(d));
System.out.println("-----------");
File file2 = new File("e:\\");
//獲取指定目錄下的所有文件或者文件夾的名稱數組(包括隱藏文件)
String[] strArray = file2.list();
for(String s : strArray) {
System.out.println(s);
}
System.out.println("----------------");
//獲取指定目錄下的所有文件或者文件夾的File數組
File[] fileArray = file2.listFiles();
//這個方法這樣看跟list方法一樣
for(File f : fileArray) {
System.out.println(f);
}
System.out.println("----------------");
//其實listFiles方法返回的是文件對象數組
//例如
System.out.println(fileArray[1].getName());
}
}
list和listFiles兩種方法添加接口:
package test;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
//獲取E盤下.txt的文件(不包含文件夾)
File file = new File("e:\\");
String[] strArray = file.list(new FilenameFilter() {
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".txt");
}
});
for(String s : strArray) {
System.out.println(s);
}
System.out.println("--------------------");
File[] fileArray = file.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".txt");
}
});
for(File f : fileArray) {
System.out.println(f);
}
}
}