【JAVA】通過File類操作文件夾(目錄創建、刪除)和文本文件(增/刪/改/查)

一、需要導入的包(需要注意的幾個細節)

1、導入包

import java.io.File;

2、定位路徑和建立文件對象

		String m_file ="c:/JAVA\\file";
		File f=new File(m_file);

’’/’‘和 ’ \\’ 都是Java路徑的兩種寫法

二、常用命令表

1 public String getName() 返回由此抽象路徑名錶示的文件或目錄的名稱
2 public String getParent() 返回此抽象路徑名的父路徑名的路徑名字符串,如果此路徑名沒有指定父目錄,則返回 null
3 public File getParentFile() 返回此抽象路徑名的父路徑名的抽象路徑名,如果此路徑名沒有指定父目錄,則返回 null
4 public String getPath() 將此抽象路徑名轉換爲一個相對路徑名字符串。
5 public boolean isAbsolute() 測試此抽象路徑名是否爲絕對路徑名。
6 public String getAbsolutePath() 返回抽象路徑名的絕對路徑名字符串。
7 public boolean canRead() 測試應用程序是否可以讀取此抽象路徑名錶示的文件。
8 public boolean canWrite() 測試應用程序是否可以修改此抽象路徑名錶示的文件。
9 public boolean exists() 測試此抽象路徑名錶示的文件或目錄是否存在
10 public boolean isDirectory() 測試此抽象路徑名錶示的文件是否是一個目錄
11 public boolean isFile() 測試此抽象路徑名錶示的文件是否是一個文件
12 public long lastModified() 返回此抽象路徑名錶示的文件最後一次被修改的時間。
13 public long length() 返回由此抽象路徑名錶示的文件的長度
14 public boolean createNewFile() throws IOException 當且僅當不存在具有此抽象路徑名指定的名稱的文件時,原子地創建一個新的空文件
15 public boolean delete() 刪除此抽象路徑名錶示的文件或目錄

16

public void deleteOnExit() 在虛擬機終止時,請求刪除此抽象路徑名錶示的文件或目錄。
17 public String[] list() 返回由此抽象路徑名所表示的目錄中的文件和目錄的名稱所組成字符串數組。
18 public String[] list(FilenameFilter filter) 返回由包含在目錄中的文件和目錄的名稱所組成的字符串數組,這一目錄是通過滿足指定過濾器的抽象路徑名來表示的
19 public File[] listFiles() 返回一個抽象路徑名數組,這些路徑名錶示此抽象路徑名所表示目錄中的文件。
20 public File[] listFiles(FileFilter filter) 返回表示此抽象路徑名所表示目錄中的文件和目錄的抽象路徑名數組,這些路徑名滿足特定過濾器。
21 public boolean mkdir() 創建指定目錄,只能創建一個父目錄(如:c:\java)
22 public boolean mkdirs() 創建目錄,同時創建多個目錄(如:c:\java\nn)。
23 public boolean renameTo(File dest) 重新命名此抽象路徑名錶示的文件。
24 public boolean setLastModified(long time) 設置由此抽象路徑名所指定的文件或目錄的最後一次修改時間。
25 public boolean setReadOnly() 標記此抽象路徑名指定的文件或目錄,以便只可對其進行讀操作。
26 public static File createTempFile(String prefix, String suffix, File directory) throws IOException 在指定目錄中創建一個新的空文件,使用給定的前綴和後綴字符串生成其名稱。
27 public static File createTempFile(String prefix, String suffix) throws IOException 在默認臨時文件目錄中創建一個空文件,使用給定前綴和後綴生成其名稱。
28 public int compareTo(File pathname) 按字母順序比較兩個抽象路徑名。
29 public int compareTo(Object o) 按字母順序比較抽象路徑名與給定對象。
30 public boolean equals(Object obj) 測試此抽象路徑名與給定對象是否相等。
31 public String toString() 返回此抽象路徑名的路徑名字符串。

三、示例(創建文件和目錄、刪除和重命名文件、讀取和添加內容)

package z_File;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;

public class z_Text {

	public static void main(String[] args) throws IOException {

		// ================ 【創建目錄或文件夾】
		
		String n_dir ="C:\\Java";  // 指定目錄 
		File n=new File(n_dir);  // 創建一個文件操作對象
		 
		 if(!n.exists()){
		     n.mkdir();   // 【mkdir】只能創建一個文件夾
		 }		 

		 String m_dir ="C:\\Java\\csj";  // 指定目錄 
		 File m=new File(m_dir);  // 創建一個文件操作對象
		 if(!m.exists()){
		     m.mkdirs();    // 【mkdirs】一次性創建多個文件夾
		 }	
			 
		// ================ 【創建一個txt文件】
			 
		 String m_file ="C:\\Java\\csj\\nn.txt";  // 指定目錄 
		 File f=new File(m_file);  // 創建一個文件操作對象
		 if(!f.exists()){
		     f.createNewFile();    // 【mkdirs】一次性創建多個文件夾
		 }		 
			 
		// ================ 【獲取文件的信息】
			 
		 System.out.println("===== 獲取文件信息 =====");
		 
		 String p_file ="C:\\Java\\csj\\nn.txt";  // 指定目錄 
		 File p=new File(p_file);  // 創建一個文件操作對象
			 
		 if(p.exists())  // 判斷文件和文件夾是否存在
		 {
			 
			 if(p.isFile())  // 是否是一個文件
			 {
				 System.out.println("文件名:"+p.getName());
				 System.out.println("文件絕對路徑:"+p.getAbsolutePath());
				 System.out.println("文件相對路徑:"+p.getPath());
				 System.out.println("文件大小(字節數):"+p.length());
				 
			 }
			 if(p.isDirectory())  // 是否是文件夾
			 {
				 System.out.println("這個文件夾存在!");  
			 }
				 
		 }
		     
		// ================ 【文件重命名】

		 String r_file ="C:\\Java\\csj\\nn.txt";  // 指定目錄 
		 File r=new File(r_file);  // 創建一個文件操作對象
		 
		 if(r.exists()){
			 
			 if(r.isFile())
			 {
				 r.renameTo(new File("C:\\Java\\csj\\csj.txt"));	// 重命名指定文件(注意加路徑)	
				 System.out.println(r_file+"文件重命名成功!");
			 }
		 }			 

		 // ================ 【刪除指定文件】

		 String d_file ="C:\\Java\\csj\\csj.txt";  // 指定目錄 
		 File d=new File(d_file);  // 創建一個文件操作對象
		 
		 if(d.exists()){
				 
			 if(d.isFile())
			 {
				 // d.delete();	// 刪除指定文件	
				 System.out.println(d_file+"文件刪除成功!");
			 }
		 }			 
		
		// ================ 【讀取文件內容】

		 try
		 {
			 String uu="C:\\Java\\csj\\csj.txt";
			 FileInputStream read_file = new FileInputStream(uu);  // 創建寫入對象-【內容】
			 int len=read_file.available();  // 讀取文件的字節數
			 System.out.println("文件【"+uu+"】的字節數是"+len);
			 
			int m_number;
			// 讀取每一個字節的鍵值編碼, 一箇中文漢字兩個字節。
			while((m_number=read_file.read())!=-1)
			{
				
				System.out.print(m_number+"_");
			}
			 
			// ---------- 讀取文本文件內容
			
			
			System.out.println("----- 讀取文本文件內容 -----");
			FileReader f_Reader = new FileReader(uu);
	        char[] chars = new char[len];
	        f_Reader.read(chars,0,len); // 讀取全部文本文件內容
	        for(char aaa:chars){
	        	System.out.print(aaa);
		    }
			
		 }catch(FileNotFoundException e)
		 {
			 e.printStackTrace();
		 }
 		 catch(IOException e)
 		 {
 			e.printStackTrace();
 		 } 
			 
		 // ================ 【向文本文件寫入內容】
		 
		 try
		 {
			 String w="C:\\Java\\csj\\csj.txt";
			 //FileOutputStream w_file = new FileOutputStream(w);  // 寫入內容 - 【覆蓋內容】
			 FileOutputStream w_file = new FileOutputStream(w,true);  // 寫入內容 - 【添加內容】
			 String m_write="我是中國人!";
				byte[] mess=m_write.getBytes();
				w_file.write(mess,0,mess.length);
			 
		 }catch(FileNotFoundException e)
		 {
			 e.printStackTrace();
		 }
 		 catch(IOException e)
 		 {
 			e.printStackTrace();
 		 } 
			
	}

}

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章