package org.westos.Filelei博客練習;
import java.io.File;
/**
* File類:
* 構造函數:
* public File(String pathname):表示pathname的抽象路徑表現的形式 (開發中使用這種方式)
* public File(String parent,String child)
* 根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例
* public File(File parent, String child):根據一個file對象和一個文件路徑來構造File實例
* */
public class Text1 {
public static void main(String[] args) {
File f = new File("E:\\demo\\text");
System.out.println(f);//E:\demo\text
File f2 = new File("E:\\demo2","texe2");
System.out.println(f2);//E:\demo2\texe2
File f3 = new File(f,"apple");
System.out.println(f3);//E:\demo\text\apple
}
}
package org.westos.Filelei博客練習;
import java.io.File;
import java.io.IOException;
/**
* 跟創建相關的功能:
* public boolean createNewFile():創建文件,當文件不存在的時候,創建此抽象路徑下的文件
* public boolean mkdir():創建一個文件夾,如果文件夾存在,不創建
* public boolean mkdirs():創建文件夾,如果父目錄不存在,會創建此目錄
* 刪除功能
* public boolean delete() :刪除文件或者文件夾(目錄不能是空的) :逐一刪除文件或者目錄的
*
* 如果創建一個文件/目錄,沒有寫盤符的時候,會創建在哪裏呢?
* 會創建在當前項目路徑下
* 絕對路徑:c:\\xxx\\xxx.txt
* 相對路徑:a.txt
* File 的重命名功能:
* public boolean renameTo(File dest)重新命名此抽象路徑名錶示的文件。
* 如果路徑名一致的情況,那麼只是重命名
* 如果兩次路徑名稱不一致,那麼不只是重命名,並且剪切
* File類的判斷功能
* public boolean isDirectory():判斷是否是文件夾
* public boolean isFile() :判斷是否是文件
* public boolean canRead(): 是否可讀
* public boolean canWriter():是否可寫
* public boolean exists() :是否存在
* public boolean isHidden():是否是隱藏文件
* File類的獲取功能:
* public String getAbsolutePath():獲取抽象文件的絕對路徑
* public String getPath():獲取相對路徑的字符串
* public String getName()返回由此抽象路徑名錶示的文件或目錄的名稱
* public long length()返回由此抽象路徑名錶示的文件的長度。
* public long lastModified():文件最後一次被修改的時間(時間毫秒值)
* */
public class Text2 {
public static void main(String[] args) throws IOException {
File f = new File("E:\\demo\\text");
f.mkdirs();
File f2 = new File("E:\\demo2");
f2.mkdir();
File f3 = new File(f2,"apple.txt");
System.out.println(f3);
f3.createNewFile();
f3.delete();//刪除了apple.txt文件
File f4 = new File("E:\\demo\\apple");
f.renameTo(f4);
// File f5 = new File("E:\\demo3\\ok");
// f5.mkdirs();
// File f6 = new File("E:\\txet\\no");
// f6.mkdirs();
// System.out.println(f5.renameTo(f6));
}
}
package org.westos.Filelei博客練習;
import java.io.File;
/**
* File的高級功能
* public String[] list() :獲取當前某個路徑下的所有的文件夾以及文件名稱的字符串數組
* public File[] listFiles() :獲取當前某個路徑下所有的文件夾以及文件的File數組
* */
public class Text3 {
public static void main(String[] args) {
File f = new File("G:\\xikai資料");
String[] str = f.list();
File[] file = f.listFiles();
for(String s:str) {
System.out.println(s);
}
System.out.println("--------------");
//防止出現空指針異常進行非空判斷
if(file!=null) {
for(File ff:file) {
System.out.println(ff);
}
}
}
}
package org.westos.Filelei博客練習;
import java.io.File;
import java.io.FilenameFilter;
/**
* 文件名稱過濾器
* 要求在控制檯打印G:盤的pdf文件
* 方式一:
* 判斷是否非空,是否是文件,是否已.pdf結尾
* File的高級功能
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)
FilenameFilter:一個接口: 文件名稱過濾器
boolean accept(File dir, String name)測試指定文件是否應該包含在某一文件列表中。
文件是否包含在文件列表中,取決於返回值,true;false表示不包含
* */
public class Text4 {
public static void main(String[] args) {
File f = new File("G:\\xikai資料");
//方式一:
File[] file = f.listFiles();
for(File ff:file) {
if(ff!=null) {
if(ff.isFile()) {
if(ff.getName().endsWith(".pdf"));//需要ff調用getName(文件名的String類型)
System.out.println(ff);
System.out.println(ff.getName());
}
}
}
System.out.println("-------------------");
//方式二:
String[] str = f.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//首先封裝File對象
File file = new File(dir, name) ;
//判斷是否是文件,是否已.pdf結尾
boolean b = file.isFile();
boolean b2 = name.endsWith(".pdf");
return b && b2;
//鏈式編程
// return new File(dir,name).isFile()&&name.endsWith(".pdf");
}
});
for(String s:str) {
System.out.println(s);
}
}
}