1.File對象對應你磁盤上的一個文件或者文件夾(路徑),一個file對象表明了一個文件或者文件夾的引用,並非直接物理上的。java
2.File.separator: 鏈接符
public static final String separator與系統相關的默認名稱 - 分隔符字符,以方便的方式表示爲字符串。 該字符串包含一個字符,即separatorChar 。 (public static final char separatorChar與系統相關的默認名稱分隔符。 該字段被初始化爲包含系統屬性值file.separator的第一個file.separator 。 在UNIX系統上,該字段的值爲’/’ ; 在Microsoft Windows系統上是’\’ 。 )學習
3.建立File實例對象的幾種方式
第一種:spa
File file = new File("D:\\abc.txt"); System.out.println(file);
第二種:.net
// parent 前面的路徑 chid 在parent 後面追加的目錄code
File file2 = new File("D:\\c", "abc.txt"); System.out.println(file2);
第三種:對象
File parent = new File("D:\\d"); File file3 = new File(parent, "qwe.doc"); System.out.println(file3);
4.建立文件blog
//返回的是否建立成功遞歸
try { boolean flag = file.createNewFile(); System.out.println(flag); } catch (IOException e) { e.printStackTrace(); }
5.判斷文件是否可讀寫canRead() canWrite()rem
System.out.println(file.canRead()); // 判斷文件是否可寫 System.out.println(file.canWrite());
6 . 判斷文件是否存在exists(), 若是不存在則 建立, 存在則不建立了字符串
if(!file2.exists()){// 判斷文件是否存在
try { file2.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ System.out.println("已經存在了 "); }
7 .建立文件夾 單層mkdir()
String string = "D:\\d"; File file = new File(string); boolean flag = file.mkdir();// 建立文件夾 單層 System.out.println(flag);
8 .利用mkdirs 能夠同時建立多層目錄
File file2 = new File("D:\d\a\c\w");
file2.mkdirs();// 利用mkdirs 能夠同時建立多層目錄
9 . 如何區分 文件或者是 文件夾
if(file2.isDirectory()){// 判斷是不是文件夾 System.out.println("是文件夾"); } if(file3.isFile()){ System.out.println("是文件"); }
10 . 刪除指定文件
File file2 = new File("D:\\d\\a\\c\\w"); File file3 = new File(file2, "abc.txt"); boolean flag2 = file3.delete(); System.out.println(flag2);
11 .length()判斷文件的長度 而非文件夾的長度 ,返回long類型的
long l = file3.length(); System.out.println(l);
12 .獲得路徑
File file = new File("D:\d\a\c\w\abc.txt");
System.out.println(file.getPath());// 獲得路徑
13 .System.out.println(file.getParent());// 獲得 文件的父目錄
14 . System.out.println(file.getParentFile());// 獲得 文件的父目錄 返回的是File對象
15 .// 重命名 被其餘 佔用的時候 就不能重命名成功
File file3 = new File("D:\\d\\a\\c\\w\\hehe.txt"); boolean flag = file.renameTo(file3); System.out.println(flag);
16.將文件過濾掉,文件夾保留
package com.qf.demo2;
import java.io.File;
import java.io.FilenameFilter;
/**
*/
public class Test4 {
public static void main(String[] args) { //File file = new File("D\\java上課內容\\2015新版PPT":); File file = new File("D:\\java上課內容"); String[] strings = file.list(); /*for (String string : strings) { System.out.println(string); } File[] files = file.listFiles(); for (File file2 : files) { System.out.println(file2); }*/ String[] strings2 = file.list(new MyFilter()); for (String string : strings2) { System.out.println(string); } File[] file2 = file.listFiles(new MyFilter()); for (File file3 : file2) { System.out.println(file3); } }
}
class MyFilter implements FilenameFilter{
// dir 指定的目錄 name 是 dir 指定目錄下的文件或者是文件夾的名字 public boolean accept(File dir, String name) {
// if(name.endsWith(".txt")){
// return false;
// }
// 假如是 文件 就 過濾掉, 若是是文件夾 , 就保留 // D:\\java上課內容 \\ java新版ppt File file = new File(dir,name); if(file.isFile()){ return false; } return true;// 返回ture 證實 保留下來的 // 返回 false 要被過濾掉的 }
}
17 .獲得指定文件夾下的全部的文件
package com.qf.demo2;
import java.io.File;
/**
需求: 獲得指定文件夾下的全部的文件
計算 指定文件夾 全部文件 和 文件夾的個數
*/
public class Test5 {
public static void main(String[] args) { findFile(new File("D:\\java上課內容")); } // 獲得 指定文件夾下一層的全部的文件和文件 // // 若是是文件 打印輸出, 若是文件夾 public static void findFile(File file){// 既能夠表明文件也能夠表明文件夾 // 保證非空 if(file != null){ // 保證是文件夾 if(!file.isFile()){ // 獲得文件夾下的文件或者是 文件夾了 File[] files = file.listFiles();// 新版ppt ppt .pptx for (File file2 : files) {// 把全部的文件和文件夾遍歷一遍 findFile(file2);// 不管是文件仍是文件夾 均可以調用 此方法 } }else{ System.out.println(file); } }else{ System.out.println("鬧着玩呢???"); } }
}
1.錯誤示範1,輸出的是建立文件夾 D:\filepath\test\test.txt。
public class FileTest { public static void main(String[] args) throws IOException { String fileName = "test.txt"; File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName); if (!testFile.exists()) { testFile.mkdirs();// 能建立多級目錄 } System.out.println("testFile:"+testFile); }} result--------------------testFile:D:\filepath\test\test.txt
2.錯誤示範2,若是 D:\filepath\test\ 文件夾不存在,會報錯。
public class FileTest { public static void main(String[] args) throws IOException { String fileName = "test.txt"; File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName); if (!testFile.exists()) { testFile.createNewFile();// 能建立多級目錄 } System.out.println("testFile:"+testFile); }}
3.實如今多重目錄下建立文件:話很少說上正確代碼:
package com.zte.FileTest; import sun.net.ftp.FtpClient; //import com.zte.ums.cnms.pm.load.enums.MppFileDirEnum; import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) throws IOException { String fileName = "test.txt"; System.out.println("File.separator:" + File.separator); File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName); File fileParent = testFile.getParentFile(); //返回的是File類型,能夠調用exsit()等方法 String fileParentPath = testFile.getParent(); //返回的是String類型 System.out.println("fileParent:" + fileParent); System.out.println("fileParentPath:" + fileParentPath); if (!fileParent.exists()) { fileParent.mkdirs();// 能建立多級目錄 } if (!testFile.exists()) testFile.createNewFile(); //有路徑才能建立文件 System.out.println(testFile); String path = testFile.getPath(); String absolutePath = testFile.getAbsolutePath(); //獲得文件/文件夾的絕對路徑 String getFileName = testFile.getName(); //獲得文件/文件夾的名字 System.out.println("path:"+path); System.out.println("absolutePath:"+absolutePath); System.out.println("getFileName:"+getFileName); }} result---------------------------------File.separator:\fileParent:D:\filepath\testfileParentPath:D:\filepath\testD:\filepath\test\test.txtpath:D:\filepath\test\test.txtabsolutePath:D:\filepath\test\test.txtgetFileName:test.txt
File類的常見方法(參考一位大牛的,不當心把連接關了)
1.建立。
boolean createNewFile(); //建立文件
boolean mkdir();建立文件夾
boolean mkdirs();建立多級文件夾。
2.刪除。
boolean delete();
void deleteOnExit();在程序退出時刪除文件。
3.判斷。
boolean canExcute(); 判斷是否可執行
boolean exists(); 文件事是否存在。
isFile();文件
isDirectory();文件夾
isHidden();//java能獲得文件中的隱藏文件可是對隱藏文件時不能訪問的
isAbsolute();//絕對路徑即時不存在也能獲得。
4.獲取信息。
getName();
getPath();
getParent();
4.三種文件建立方式:
**File file = new File("E:/...");//文件/文件夾路徑對象
File file = new File("..." ,""...);//父目錄絕對路徑 + 子目錄名稱
File file = new File("...","...");//父目錄File對象 + 子目錄名稱**
file.exists():判斷文件/文件夾是否存在
file.delete():刪除文件/文件夾
file.isDirectory():判讀是否爲目錄
file.isFile():判讀是否爲文件夾
**file.mkdir():建立文件夾(僅限一級目錄)
file.mkdirs():建立多及目錄文件夾(包括但不限一級目錄)**
file.createNewFile():建立文件
file.getAbsolutePath():獲得文件/文件夾的絕對路徑
file.getName():獲得文件/文件夾的名字
file.String():一樣是獲得文件/文件夾的絕對路徑等於file.getAbsolutePath()
file.getParent():獲得父目錄的絕對路徑String 不能夠調用能夠調用mkdir()方法
file.getParentFile():獲得父目錄的絕對路徑的返回值是File型能夠調用mkdir()方法
String[] gdir.list():獲得目錄的子目錄\文件的名稱(不是絕對路徑)
File[] dir.listFiles():獲得目錄的子目錄\文件事是否存在。
戳我領取:Java基礎資料pdf最後的最後,爲了節省你們在網上搜索資料的時間來學習,也能夠分享給身邊好友一塊兒學習。給文章留個小贊,就能夠免費領取啦~