file 類的靜態(tài)參數(shù)
package FileTest;
import java.io.File;
/**
* Created by kumamon on 2021/5/27.
*
* File類的靜態(tài)變量
*
* File.pathSeparator 路徑分割符號 windowns 分號 ; linux 冒號 :
* File.separator 文件名稱分隔符 windowns 反斜杠\ linux 正斜杠/
*
*/
public class FileDemo {
public static void main(String[] args) {
System.out.println(File.pathSeparator);// File.pathSeparator 路徑分割符號 windowns 分號 ; linux 冒號 :
System.out.println(File.separator); // File.separator 文件名稱分隔符 windowns 反斜杠\ linux 正斜杠/
File file =new File("E:\\Java_demo\\1.txt");
System.out.println(file.getAbsolutePath()); //絕對路徑 完整的路徑 E:\Java_demo\demo01\1.txt
}
}
file中的常用方法
package FileTest;
import java.io.File;
import java.io.IOException;
/**
* Created by kumamon on 2021/5/27.
* File
*
*
*
*/
public class FileMethod {
public static void main(String[] args) throws IOException {
//show1();
//fileMathed();
//fileCreateAndDelete();
//dirCreateAndDelete();
//fileList();
//File file2=new File("demo02");
//fileListSubFile(file2);
}
/**
* 遞歸打印多級文件
* */
private static void fileListSubFile(File f) {
/** 結果
*
demo02\demo02.iml
demo02\src\Mian.java
demo02\src
* */
File[] files = f.listFiles();
for (File file : files) {
if(file.isDirectory()){
fileListSubFile(file);
}
System.out.println(file);
}
}
/**
* 可以獲取隱藏的文件
* */
private static void fileList() {
File file2=new File("demo02");
String[] list = file2.list(); //獲取demo02 中的文件
/** 結果
*
demo02.iml
src
* */
for (String s : list) {
System.out.println(s);
}
/** 結果
*
demo02\demo02.iml
demo02\src
* */
File[] files = file2.listFiles();
for (File file : files) {
System.out.println(file);
}
}
/**
* dir創(chuàng)建和刪除
* 使用mkdirs 可以創(chuàng)建多級
* delete 不能刪除文件夾
*/
private static void dirCreateAndDelete() {
File file=new File("\\test");
File file2=new File("2\\1\\1");
boolean filemkdir = file.mkdir(); //創(chuàng)建文件拴疤。true
boolean filemkdir2 = file2.mkdir(); //創(chuàng)建文件周偎。false
System.out.println(filemkdir);
System.out.println(filemkdir2);
boolean mkdirs = file2.mkdirs(); //創(chuàng)建多級文件
System.out.println(mkdirs); //true
file.delete(); //true
file2.delete(); //false 不能刪除多級文件
}
/**
*file創(chuàng)建和刪除
*
*/
private static void fileCreateAndDelete() throws IOException {
File file=new File("2.txt");
boolean newFile = file.createNewFile(); //創(chuàng)建一個文件 不存在返回true
boolean newFile2 = file.createNewFile(); //已經(jīng)創(chuàng)建過, 存在返回false
System.out.println(newFile); //true
System.out.println(newFile2); //false
File fileDir=new File("E:\\Java_demo\\testDir");
boolean newFileDir = fileDir.createNewFile(); //創(chuàng)建一個文件 構造傳遞的為 文件夾,其實創(chuàng)建的還是文件
System.out.println(newFileDir); //true
//File fileUnkown=new File("E:\\Java_demo\\testDir\\1.txt");
//boolean newFileUnkown = fileUnkown.createNewFile(); //文件的上級文件夾不存在渴语,拋出異常
//System.out.println(newFileUnkown); //true
boolean delete = file.delete(); //刪除文件
System.out.println(delete);
}
/**
*構造方法
* 可以是文件結尾责静,也可以是文件夾結尾
* 可以是存在的文件 也可以是不存在的文件
*
*/
private static void show1() {
File file=new File("E:\\Java_demo\\1.txt");
System.out.println(file);
File file1 =new File("E:\\Java_demo\\demo01\\2.txt");
System.out.println(file1);
}
/**
*file 常用的方法
*
*
*/
public static void fileMethod() {
File file1=new File("E:\\Java_demo\\1.txt"); //絕對路徑構造
File file2=new File("1.txt");
File file3=new File("E:\\Java_demo\\demo01"); //文件夾
File file4=new File("E:\\Java_demo\\demo05\\2.txt"); //不存在
String absolutePath = file1.getAbsolutePath(); //獲取絕對路徑
System.out.println(absolutePath);
String path = file1.getPath(); //獲取構造方法中傳遞的路徑 E:\Java_demo\demo01\1.txt
String path2 = file2.getPath(); //獲取構造方法中傳遞的路徑 1.txt
System.out.println(path);
System.out.println(path2);
String nameDir = file3.getName();//獲取文件名稱决帖, 文件夾 demo01
String nameUnknow=file4.getName(); //獲取文件名稱菱父, 不存在文件 2.txt
System.out.println(nameDir);
System.out.println(nameUnknow);
long length = file1.length(); //獲取文件的大小 字節(jié)為單位
System.out.println(length); //12
long length2 = file3.length();
System.out.println(length2); //獲取文件夾的大小
boolean exists = file1.exists(); //獲取文件是否存在
System.out.println(exists); //true
boolean exists4 = file4.exists();
System.out.println(exists4); //false
boolean file1s = file1.isFile(); //判斷文件是否為文件
System.out.println(file1s); //true
boolean directory = file1.isDirectory(); //獲取文件是否為文件夾
System.out.println(directory); //false
}
}
file中文件查找 FileFilter
package FileTest;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
/**
* Created by kumamon on 2021/5/27.
* <p>
* 搜索E://AAA 里面的java文件
*/
public class FileSearch {
public static void main(String[] args) {
File file = new File("E:\\AAA");
//search01(file);
search02(file);
}
//
private static void search02(File file1) {
if(!file1.exists()){
return;
}
/*File[] files = file1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.toString().endsWith(".java") || pathname.isDirectory();
}
});*/
/**使用Lambda 表達式*/
File[] files = file1.listFiles((pathname)->{ return pathname.toString().endsWith(".java") || pathname.isDirectory();});
for (File file : files) {
if(file.isDirectory()){
search02(file);
}
System.out.println(file.toString());
}
}
/**
* 使用String endwith方法
*
* */
private static void search01(File file1) {
if(!file1.exists()){
return;
}
for (File f : file1.listFiles()) {
if(f.isDirectory()){
search01(f);
}else{
if(f.toString().endsWith(".java")){
System.out.println(f);
}
}
}
}
}