# 文件的基本使用 ### 一、文件 - **什麼是文件** 文件是保存數據的地方,比如word文檔,txt文件,excel文件……都是文件。即可以保存一張圖片,也可以保持視頻,聲音…… - **文件流** 文件在程式中是以流的形式來操作的 ![文件流](https://img2023.cnblog ...
文件的基本使用
一、文件
-
什麼是文件
文件是保存數據的地方,比如word文檔,txt文件,excel文件……都是文件。即可以保存一張圖片,也可以保持視頻,聲音……
-
文件流
文件在程式中是以流的形式來操作的
流:數據在數據源(文件)和程式(記憶體)之間經歷的路徑
輸入流: 數據從數據源(文件)到程式(記憶體)的路徑
輸出流:數據從程式(記憶體)到數據源(文件)的路徑
二、常用的文件操作
1. 創建文件對象相關構造器和方法
- new File(String pathName) :根據路徑構建一個File對象,類似絕對路徑
- new File(File parent, String child):根據父目錄文件夾和子路徑構建,類似根據相對路徑
- new File(String parent, String child):根據父目錄 和 子路徑構建
- createNewFile(): 創建新文件
-
代碼演示:
import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; /** * @author * @version 1.0 * 演示創建文件 */ public class FileCreate { public static void main(String[] args) { } //方式1 new File(String pathName),類似根據絕對路徑創建? @Test public void create01(){ String pathName = "e:\\news1.txt"; File file = new File(pathName);//創建文件對象,此時只是有一個對象在jvm記憶體中 try { file.createNewFile();//創建文件,這裡才對磁碟做出操作,創建出文件 System.out.println("文件創建成功"); } catch (IOException e) { e.printStackTrace(); } } //方式2 new File(File parent, String child),類似根據相對路徑創建? //根據父目錄文件夾和子路徑構建 @Test public void create02(){ File parentFile = new File("e:\\"); String fileName = "news2.txt"; File file = new File(parentFile, fileName);//創建文件對象 try { file.createNewFile();//創建文件 System.out.println("文件創建成功"); } catch (IOException e) { e.printStackTrace(); } } //方式3 new File(String parent, String child),根據父目錄 + 子路徑構建 @Test public void create03(){ // String parentPath = "e:\\"; String parentPath = "e:/";//也可以這麼寫 String fileName = "news3.txt"; File file = new File(parentPath, fileName); try { file.createNewFile(); System.out.println("文件創建成功"); } catch (IOException e) { e.printStackTrace(); } } }
2. 獲取文件的相關信息的方法
-
getName(),getAbsolutePath(),getParent(),length(),exists(),isFile(),isDirectory()
-
代碼演示:
import org.junit.jupiter.api.Test; import java.io.File; import java.io.IOException; public class FileInformation { public static void main(String[] args) { } //獲取文件信息 @Test public void info(){ //創建文件對象 File file = new File("e:\\news1.txt");//File對象只是一個路徑,可能是文件也可能是目錄(文件夾) // try { // file.createNewFile(); // } catch (IOException e) { // e.printStackTrace(); // } //獲取文件名字 System.out.println("文件名字 = " + file.getName()); //文件絕對路徑 System.out.println("文件絕對路徑 = " + file.getAbsolutePath()); //文件父目錄 System.out.println("文件父目錄 = " + file.getParent()); //文件大小 System.out.println("文件大小 = " + file.length()); //文件是否存在 System.out.println("文件是否存在 = " + file.exists()); //該對象對應的是不是文件 System.out.println("是不是一個文件 = " + file.isFile()); //該對象對應的是不是目錄 System.out.println("是不是一個目錄 = " + file.isDirectory()); } } /* 運行結果: 文件名字 = news1.txt 文件絕對路徑 = e:\news1.txt 文件父目錄 = e:\ 文件大小 = 18 文件是否存在 = true 是不是一個文件 = true 是不是一個目錄 = false */
3. 目錄的操作和文件刪除
- mkdir():創建一級目錄
- mkdirs():創建多級目錄
- delete():刪除空目錄或文件
代碼演示:
import org.junit.jupiter.api.Test;
import java.io.File;
public class Directory_ {
public static void main(String[] args) {
}
//判斷 e:\\news1.txt 是否存在,存在就刪除
@Test
public void m1(){
String filePath = "e:\\news1.txt";
File file = new File(filePath);
if(file.exists()){
if(file.delete()){
System.out.println(filePath + " 刪除成功");
}else {
System.out.println(filePath + " 刪除失敗");
}
}else {
System.out.println("文件不存在……");
}
}
//判斷 D:\\demo02 是否存在,存在就刪除
//目錄也是文件
@Test
public void m2(){
String filePath = "D:\\demo02";
File file = new File(filePath);
if(file.exists()){
if(file.delete()){
System.out.println(filePath + " 刪除成功");
}else {
System.out.println(filePath + " 刪除失敗");
}
}else {
System.out.println("該目錄不存在……");
}
}
//判斷D:\\demo\\a\\b\\c 目錄是否存在,如果存在就提示已經存在,否則就創建
@Test
public void m3(){
String directoryPath = "D:\\demo\\a\\b\\c";
File file = new File(directoryPath);
if(file.exists()){
System.out.println(directoryPath + "存在...");
}else {
if (file.mkdirs()){//創建一級目錄用mkdir(),創建多級目錄使用mkdirs()
System.out.println(directoryPath + "創建成功...");
}else{
System.out.println(directoryPath + "創建失敗...");
}
}
}
}