文件的創建: package file; import java.io.File; import java.io.IOException; /* create:創建 new:新 file:文件 使用File新建一個文件 / public class CreateNewFileDemo { publi ...
文件的創建:
package file;
import java.io.File;
import java.io.IOException;
/*
create:創建
new:新
file:文件
使用File新建一個文件
/
public class CreateNewFileDemo {
public static void main(String[] args) throws IOException {
//在當前項目目錄下新建一個文件:test.txt
//1創建一個File表示要創建的文件
File file = new File("./test.txt");
//2判斷該位置下是否已經存在了這個文件或目錄
/
boolean exists()
判斷當前File表示的文件或目錄是否真實存在,存在則返回true
/
if(file.exists()){
System.out.println("該文件已存在");
}else{
//3將該文件創建出來
/
createNewFile方法的作用是將當前File表示的文件在該位置創建出來
*/
file.createNewFile();//游標在這句代碼中按alt+回車
System.out.println("文件已創建");
}
}
}
文件的刪除:
package file;
import java.io.File;
import java.io.FileFilter;
/**
- 獲取./src/file目錄中所有名字以"D"開始的文件
*/
public class Test2 {
public static void main(String[] args) {
FileFilter filter = new FileFilter() {
//只要file表示的文件的名字是以"D"開始的則接受
public boolean accept(File file) {
String name = file.getName();
System.out.println("正在過濾:"+name);
return name.startsWith("D");
}
};
File dir = new File("./src/file");
File[] subs = dir.listFiles(filter);
for(int i=0;i<subs.length;i++){
System.out.println(subs[i].getName());
}
}
}
文件的訪問:
package file;
import java.io.File;
/**
-
java.io.File
-
File可以表示硬碟上的一個文件或目錄(本質保存的是一個抽象路徑)
-
File可以:
-
1:訪問其表示的文件或目錄的屬性
-
2:創建刪除文件或空目錄
-
3:訪問一個目錄中的子項
-
File不可以:
-
訪問文件數據
*/
public class FileDemo {
public static void main(String[] args) {
//絕對路徑的優點是清晰明瞭,但是缺點是路徑寫死了,跨平臺行不好。
// File file = new File("c:/Users/X/IdeaProjects/JSD2206_SE/demo.txt");
//相對路徑的優點是有良好的跨平臺性。
//“./”表示當前目錄,在IDEA中當前目錄指的是當前程式所在的項目目錄
File file = new File("./demo.txt");//獲取file表示的文件或目錄的名字 String name = file.getName(); System.out.println(name); //獲取當前file表示的文件的大小(單位是位元組) long len = file.length(); System.out.println("大小:"+len+"個位元組"); /* can:能 write:寫 read:讀 */ boolean cw = file.canWrite();//是否可寫 boolean cr = file.canRead();//是否可讀 System.out.println("是否可寫:"+cw); System.out.println("是否可讀:"+cr);
}
}
讀取文件中所有的子項:
package file;
import java.io.File;
/**
-
獲取一個目錄中的所有子項
/
public class ListFilesDemo {
public static void main(String[] args) {
//獲取當前目錄下的所有子項
File dir = new File(".");
/
boolean isFile()
判斷當前File對象表示的是否為一個文件boolean isDirectory() 判斷當前File對象表示的是否為一個目錄 */ if(dir.isDirectory()){//判斷當前dir表示的是否為一個目錄 /* File[] listFiles() 將當前File對象表示的目錄中所有子項返回 */ File[] subs = dir.listFiles(); System.out.println("當前目錄下共:"+subs.length+"個子項"); for(int i=0;i<subs.length;i++){ File sub = subs[i]; System.out.println(sub.getName()); } }
}
}
在文件中設置過濾器找出符合過濾器要求的子項:
package file;
import java.io.File;
import java.io.FileFilter;
/**
- 重載的listFiles方法
- File[] listFiles(FileFilter filter)
- 該方法允許我們傳入一個文件過濾器,然後將當前File對象表示的目錄中所有滿足此過濾器要求的
- 子項返回。
/
public class ListFilesDemo2 {
public static void main(String[] args) {
/
獲取./src/file目錄中所有名字中含有“t”的文件
/
File dir = new File("./src/file");
if(dir.isDirectory()){
//使用匿名內部類創建一個文件過濾器
FileFilter filter = new FileFilter() {
/
重寫accept方法(accept:接受)
此方法的重寫原則是定義過濾器過濾File的條件。當參數file符合此過濾器
的過濾條件時,方法應當返回為true。表達過濾器接受該file。
*/
public boolean accept(File file) {
String name = file.getName();
// return name.indexOf("t")>=0;
return name.contains("t");//contains:包含
}
};
File[] subs = dir.listFiles(filter);
for(int i=0;i<subs.length;i++){
System.out.println(subs[i].getName());
}
}
}
}
目錄的創建:
package file;
import java.io.File;
/**
-
make:做
-
directory:目錄(文件夾)
-
創建一個目錄
*/
public class MkDirDemo {
public static void main(String[] args) {
//在當前目錄下新建一個目錄:demo
// File dir = new File("./demo");
// File dir = new File("demo");File dir = new File("./a/b/c/d/e/f"); if(dir.exists()){ System.out.println("該目錄已存在!"); }else{ /* mkdir()創建當前File表示的目錄,前提是該目錄所在的目錄必須存在。 mkdirs()創建當前File表示的目錄,並會將所有不存在父目錄一同創建出來。 實際開發中推薦使用mkdirs這個方法。 */
// dir.mkdir();
dir.mkdirs();
System.out.println("該目錄已創建!");
}
}
}
目錄的刪除:
package file;
import java.io.File;
/**
- 刪除一個目錄
/
public class DeleteDirDemo {
public static void main(String[] args) {
//刪除當前目錄下的demo目錄
// File dir = new File("./demo");
File dir = new File("./a");
if(dir.exists()){
/
delete()方法在刪除目錄是要求該目錄必須是一個空目錄
*/
dir.delete();
System.out.println("該目錄已刪除!");
}else {
System.out.println("該目錄不存在!");
}
}
}