# File文件操作
[TOC]
## File類介紹
`java.io.File`類是一個與文件本身操作有關的類,此類可以實現文件創建,刪除,重命名,取得文件大小,修改日期等常見的系統文件操作
File類的常用方法
| 方法 | 描述 |
| :---: | :---: |
| public File(String pathName) | 給定一個要操作文件的完整路徑 |
|public File(File parent,String child)|給定要操作文件的父路徑和子文件名稱|
|public boolean creatNewFile() throw IOException|創建文件|
|public boolean delete()|刪除文件|
|public boolean exists()|判斷給定路徑是否存在|
|public boolean mkdir()|建此抽象路徑名指定的目錄。|
|public boolean mkdirs()|創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。|
## File類的使用
### 創建一個新文件
~~~java
/**
* 創建一個新文件
* @param path
* @throws IOException
*/
public static void createNewFile(String path) throws IOException {
File file = new File(path);
boolean createFlag = file.createNewFile();
System.out.println(createFlag);
}
~~~
### 刪除一個文件
~~~
/**
* 刪除一個文件
* @param path
* @throws IOException
*/
public static void deleteFile(String path) throws IOException {
File file = new File(path);
boolean delteFlag = file.delete();
// 返回true表示刪除成功 false表示刪除失敗,失敗的原因大部分是文件不存在
System.out.println(delteFlag);
}
~~~
### 創建目錄
~~~
/**
* 創建目錄
* @param path
*/
public static void mkdir(String path) {
File file = new File(path);
System.out.println(file.mkdir());
}
~~~
### 創建目錄(如果父目錄不存在則創建父目錄)
~~~
/**
* 創建目錄(如果父目錄不存在,則創建父目錄)
* @param path
*/
public static void mkdirs(String path) {
File file = new File(path);
System.out.println(file.mkdirs());
}
~~~
### 判斷一個文件或者路徑是否存在
~~~
/**
* 判斷一個文件后者路徑是否存在
* @param path
*/
public static void existsFile(String path) {
File file = new File(path);
System.out.println(file.exists());
}
~~~
### 獲取文件的絕對路徑
~~~
/**
* 獲取文件的絕對路徑
* @param path
*/
public static void getAbsolutePath(String path) {
File file = new File(path);
System.out.println(file.getAbsolutePath());
}
~~~
### 獲取文件名
~~~
/**
* 獲取文件名
* @param path
*/
public static void getFileName(String path) {
File file = new File(path);
System.out.println(file.getName());
}
~~~
### 獲取父路徑
~~~
/**
* 獲取父路徑
*/
public static void getParent(String path) {
File file = new File(path);
System.out.println(file.getParent());
}
~~~
### 判斷一個文件對象是否是目錄
~~~
/**
* 判斷一個文件對象是否是目錄
*/
public static void isDirectory(String path) {
File file = new File(path);
System.out.println(file.isDirectory());
}
~~~
### 判斷一個文件對象是否是文件
~~~
/**
* 判斷一個文件對象是否是文件
* @param path
*/
public static void isFile(String path) {
File file = new File(path);
System.out.println(file.isFile());
}
~~~
### 獲取文件目錄下的所有文件和目錄清單
~~~
/**
* 獲取文件目錄下的所有文件和目錄清單
* @param path
*/
public static void list(String path) {
File file = new File(path);
boolean flag = file.isDirectory();
if(!flag) {
String[] files = file.list();
for (String fileName : files) {
System.out.println(fileName);
}
} else {
System.out.println("not directory");
}
}
~~~
### 獲取文件目錄下的所有文件和目錄清單(文件名)
~~~java
/**
* 獲取文件目錄下的所有文件和目錄清單(文件名)
* @param path
*/
public static void listFiles(String path) {
File file = new File(path);
File[] files = file.listFiles();
for (File fileName : files) {
System.out.println(fileName.getAbsolutePath());
}
}
~~~
### 文件重命名
~~~
/**
* 文件重命名
* @param oldFileName
* @param newFileName
*/
public static void renameTo(String oldFileName, String newFileName) {
File oldFile = new File(oldFileName);
File newFile = new File(newFileName);
System.out.println(oldFile.renameTo(newFile));
}
~~~
### 設置文件只讀
~~~
/**
* 設置文件只讀
* @param path
*/
public static void setReadonly(String path) {
File file = new File(path);
System.out.println(file.setReadOnly());
}
~~~
### 文件的遞歸讀取
~~~
public static void main(String[] args) {
printAllFile(new File("d:" + File.separator + "fileTest"));
}
public static void printAllFile(File file) {
String filePath = file.getAbsolutePath();
System.out.println(filePath);
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File lf : files) {
printAllFile(lf);
}
}
}
~~~
### 文件的遞歸刪除
~~~
public static void main(String[] args) {
deleteAllFile(new File("d:" + File.separator + "fileTest"));
}
public static void deleteAllFile(File file) {
if (file.isFile()) {
// 直接刪除文件
file.delete();
} else {
File[] files = file.listFiles();
for (File fl : files) {
deleteAllFile(fl);
}
// 刪除目錄
file.delete();
}
}
~~~
- Java業余班教學管理
- JAVA基礎
- JAVA開發學習準備
- JAVA介紹
- 開發JAVA的準備
- JAVA的運行原理
- JDK配置
- 我的第一個JAVA程序
- 類與對象
- 基礎語言要素
- 數據類型
- Eclipse的安裝與使用
- 變量
- 直接量
- 運算符
- 流程控制
- 數組結構
- 面向對象
- 隱藏與封裝
- 深入構造器
- 類的繼承
- 多態
- 包裝類
- final修飾符
- 抽象類
- 接口
- 設計模式
- 單例模式
- 工廠模式
- 集合框架
- 集合排序
- 常用類學習
- 異常處理
- Java基礎綜合練習
- JAVA高級
- 泛型
- 多線程
- 線程的創建
- 線程的生命周期
- 線程同步
- 線程通信
- 輸入輸出流(I/O編程)
- File文件操作
- 字節流與字符流
- 數據庫
- 數據庫介紹
- 數據庫安裝
- SQL
- 表的基本操作
- 修改數據語句
- 數據檢索操作
- 多表數據操作
- 表結構設計
- 綜合應用
- JavaWeb