Java——File類

一,File類的概述和構造方法

A:file類的概述

file類可以理解成一個路徑

文件夾或者是文件夾路徑

路徑分為絕對路徑和相對路徑

絕對路徑是一個固定的路徑,從盤符開始這里的G:\TIM  就是一個絕對路徑,是一個固定的路徑

這里的G:\TIM 就是一個絕對路徑,是一個固定的路徑

相對路徑是相對于某個位置而言的

在eclipse下是指當前項目這里的 xxx.txt就是一個相對路徑
這里的 xxx.txt 就是一個相對路徑

在DOS下指的是當前路徑
這里的C:\Administrator 就是一個當前路徑
這里的C:\Administrator 就是一個當前路徑

B:file類的構造方法

file類可以理解成一個路徑

  • File(String pathname):根據一個路徑得到File對象
  • File(String parent,String chile):根據一個目錄和一個子文件/目錄得到File對象
  • File(File parent,String child):根據一個父類File對象和一個子文件/目錄得到File對象

這里寫圖片描述
這里寫圖片描述

由圖可得:
1,G:\TIM\思You.docx 是存在的
2,xxx.txt也是存在
3,yyy.txt是不存在的

代碼實現:

package com.yy.file;import java.io.File;public class Demo1_File {public static void main(String[] args) {demo1();demo2();demo3();}private static void demo3() {/*File(File parent,String child):根據一個父類File對象和一個子文件/目錄得到File對象*/File parent = new File("G:\\TIM");String child = "思You.docx";File file = new File(parent,child);System.out.println(file.exists());System.out.println(parent.exists());//(父級路徑)是File對象,可以使用File里面的內容}private static void demo2() {/*File(String parent,String chile):根據一個目錄和一個子文件/目錄得到File對象*/String parent = "G:\\TIM";          //(父級路徑)代表字符串,只能判斷字符串中的內容,不能使用File里面的內容String child = "思You.docx";         //(子級路徑)File file = new File(parent,child);System.out.println(file.exists()); //判斷路徑是否是否存在}private static void demo1() {/*File(String pathname):根據一個路徑得到File對象*/File file = new File("G:\\TIM\\思You.docx");     //代表一個文件的路徑 一個'/'表示轉譯,兩個'//'表示該目錄下System.out.println(file.exists());  //  絕對路徑:(判斷是否存在)存在,返回true  不存在,返回falseFile file2 = new File("xxx.txt");       //xxx.txt存在,返回trueSystem.out.println(file2.exists()); //  相對路徑:(判斷是否存在)存在,返回true  File file3 = new File("yyy.txt");       //yyy.txt不存在,返回falseSystem.out.println(file3.exists()); //  相對路徑:(判斷是否存在)不存在,返回false}}

二,File類的創建功能

創建功能

  • public boolean createNewFile():創建文件,如果存在這樣的文件,就不創建了
  • public boolean mkdir():創建文件夾,如果存在這樣的文件夾,就不創建了
  • public boolean mkdir():創建多級文件夾,如果父文件夾不存在,會幫你創建出來

代碼實現:

package com.yy.file;import java.io.File;
import java.io.IOException;public class Demo2_FileMethod {public static void main(String[] args) throws IOException {demo1();demo2();demo3();}private static void demo3() {/*public boolean mkdir():創建多級文件夾,如果父文件夾不存在,會幫你創建出來*/File dir3 = new File("ccc\\ddd");System.out.println(dir3.mkdirs());//創建多級目錄(創建多級文件夾)}private static void demo2() {/*public boolean mkdir():創建文件夾,如果存在這樣的文件夾,就不創建了*/File dir1 = new File("aaa");//創建文件夾,如果父文件夾存在,不創建,并返回false;如果父文件夾不存在,創建,并返回trueSystem.out.println(dir1.mkdir());File dir2 = new File("bbb.txt");//這樣寫是可以的,創建的是文件夾,只是文件夾的名稱為:bbb.txt而已,文件夾也是可以有后綴的System.out.println(dir2.mkdir());}private static void demo1() throws IOException {/*public boolean createNewFile():創建文件,如果存在這樣的文件,就不創建了*/File file = new File("wsq.txt");System.out.println(file.createNewFile());   //如果沒有就創建,返回trueFile file2 = new File("zzz");System.out.println(file2.createNewFile());  //如果有就不創建了,返回false}}

二,File類的重命名和刪除功能

A:重命名和刪除功能

  • public boolean renameTo(File dest):把文件重命名為指定的文件路徑
  • public boolean delete():刪除文件或文件夾

B:重命名注意事項

  • 如果路徑名相同,就是改名
  • 如果路徑名不同,就是改名并剪切

C:刪除注意事項

  • Java中的刪除不走回收站
  • 要刪除一個文件夾,請注意該文件夾內不能包含文件或者文件夾

這里寫圖片描述

代碼實現:

package com.yy.file;import java.io.File;public class Demo3_Method {public static void main(String[] args) {demo1();demo2();}private static void demo2() {File file1 = new File("yy.txt");System.out.println(file1.delete());//刪除yy.txt文件(刪除時,不走回收站的,也就是說 會永久徹底刪除)File file2 = new File("E:\\wsq.txt");System.out.println(file2.delete());File file3 = new File("zzz");System.out.println(file3.delete());}private static void demo1() {File file1 = new File("yy.txt");File file2 = new File("E:\\wsq.txt");System.out.println(file1.renameTo(file2));//把文件yy.txt重命名為E盤下wsq.txt}}

程序運行之后:
這里寫圖片描述
會將yy.txt轉化成G:\TIM下的wsq.txt
會將yy.txt轉化成G:\TIM下的wsq.txt

三,File類的判斷功能

判斷功能

  • public boolean isDirectory():判斷是否是目錄,是 返回true 否 返回 false
  • public boolean isFile():判斷是否是文件,是 返回true 否 返回 false
  • public boolean exists():判斷是否存在,是 返回true 否 返回 false
  • public boolean canRead():判斷是否可讀,是 返回true 否 返回 false
  • public boolean isHidden():判斷是否隱藏,是 返回true 否 返回 false

這里寫圖片描述
由圖可知:
ccc是一個文件夾
zzz是一個文件
aaa.txt是一個文件

將aaa.txt設置為隱藏
將aaa.txt設置為隱藏

代碼實現:

package com.yy.file;import java.io.File;public class Demo4_FileMethod {public static void main(String[] args) {demo1();demo2();}private static void demo2() {File file = new File("zzz");file.setReadable(false);System.out.println(file.canRead());         //Windows 系統認為所以的文件都是可讀的file.setWritable(true);System.out.println(file.canWrite());        //Windows 系統可以設置為不可寫File file2 = new File("aaa.txt");System.out.println(file2.isHidden());       //判斷是否是隱藏文件System.out.println(file.isHidden());}private static void demo1() {File dir1 = new File("ccc");            //這里的ccc是一個文件夾System.out.println(dir1.isDirectory());//判斷是否是文件夾      ccc  是一個文件夾,所以返回trueFile dir2 = new File("zzz");            //這里的zzz是一個文件System.out.println(dir2.isDirectory());//判斷是否是文件夾      zzz  是一個文件,所以返回falseSystem.out.println(dir1.isFile());      //判斷是否是文件      ccc  是一個文件夾,所以返回falseSystem.out.println(dir2.isFile());      //判斷是否是文件      zzz  是一個文件,所以返回trueSystem.out.println(dir1.exists());      //判斷是否存在,存在返回true,不存在返回falseSystem.out.println(dir2.exists());      //判斷是否存在,存在返回true,不存在返回false}}

四,File類的獲取功能

  • public String getAbsolutepath():’獲取絕對路徑
  • public String getPath():獲取路徑
  • public String getName():獲取名稱
  • public long length():獲取長度、字節數
  • public long lastModified():獲取最后一次的修改時間(毫秒值)
  • public String [] list():獲取指定目錄下的所有文件或者文件夾名稱數組
  • public File [] listFiles():獲取指定目錄下的所有文件或者文件夾的File數組

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

代碼實現:

package com.yy.file;import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;public class Demo5_FileMethod {
/*** public String getAbsolutepath():’獲取絕對路徑* public String getPath():獲取路徑* public String getName():獲取名稱* public long length():獲取長度、字節數* public long lastModified():獲取最后一次的修改時間(毫秒值)* public String [] list():獲取指定目錄下的所有文件或者文件夾名稱數組* public File [] listFiles():獲取指定目錄下的所有文件或者文件夾的File數組* */public static void main(String[] args) {demo1();File dir = new File("G:/TIM");          //獲取名稱String [] arr = dir.list();                 for (String string : arr) {System.out.println(string);}System.out.println();File [] subFiles = dir.listFiles();     //獲取全路徑(每一個file對象)  for (File file : subFiles) {System.out.println(file);           //重寫了Object類中的toString()方法}System.out.println();}private static void demo1() {File file1 = new File("ccc.txt");   //相對路徑File file2 = new File("E:\\eclipse_win64\\新建文件夾\\day19\\ccc.txt");  //絕對路徑System.out.println(file1.getAbsolutePath());            //獲取絕對路徑System.out.println(file2.getAbsolutePath());            //獲取絕對路徑System.out.println();System.out.println(file1.getPath());                    //獲取構造方法里面的路徑,傳的是啥,返回啥System.out.println(file2.getPath());                    //獲取構造方法里面的路徑,傳的是啥,返回啥System.out.println();System.out.println(file1.getName());                    //獲取文件或者是文件夾的名稱System.out.println(file2.getName());                    //獲取文件或者是文件夾的名稱System.out.println();System.out.println(file1.length());                     //獲取文件或者是文件夾的長度、字節數System.out.println(file2.length());                     //獲取文件或者是文件夾的長度、字節數System.out.println();System.out.println(file1.lastModified());               //獲取文件最后一次的修改時間(毫秒值)System.out.println(file2.lastModified());               //獲取文件最后一次的修改時間(毫秒值)System.out.println();Date wsq = new Date(file1.lastModified());              Date yy = new Date(file2.lastModified());System.out.println(wsq);                                //獲取文件最后一次的修改時間(年月日英文形式)System.out.println(yy);                                 //獲取文件最后一次的修改時間(年月日英文形式)System.out.println();SimpleDateFormat qq = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");System.out.println(qq.format(wsq));                     //獲取文件最后一次的修改時間(年月日簡易中文形式)System.out.println(qq.format(yy));                      //獲取文件最后一次的修改時間(年月日簡易中文形式)System.out.println();}}

運行結果如下:
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

五,File類(輸出指定目錄下指定后綴的文件名)

  • 問題:判斷E盤目錄下是否有后綴名為.jpg的文件,如果有,就輸出該文件名稱

這里寫圖片描述

代碼如下:

package com.yy.test;import java.io.File;
import java.io.FilenameFilter;public class Test3 {
/*** 判斷E盤目錄下是否有后綴名為.jpg的文件,如果有,就輸出該文件名稱* */public static void main(String[] args) {File dir = new File("E:\\");/*String [] arr = dir.list();               //獲取E盤下所有的文件或者文件夾for (String wsq : arr) {if(wsq.endsWith(".jpg"));System.out.println(wsq);}*/File [] subFiles = dir.listFiles();         //獲取E盤下所有的文件或者文件夾對象for (File subFile : subFiles) {if(subFile.isFile() && subFile.getName().endsWith(".jpg")){System.out.println(subFile);}}
}

這里寫圖片描述

六,File類(文件名稱過濾器)

代碼如下:

package com.yy.test;import java.io.File;
import java.io.FilenameFilter;public class Test3 {public static void main(String[] args) {File dir = new File("E:\\");String [] arr = dir.list(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {
//              System.out.println(dir);
//              System.out.println(name);File file = new File(dir, name);return file.isFile() && file.getName().endsWith(".jpg");}});for (String string : arr) {System.out.println(string);}   }
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380004.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380004.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380004.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux進程環境

一 main函數 當內核使用一個exec函數執行C程序時,在調用main函數之前先調用一個特殊的啟動例程,可執行程序將此例程指定為程序的起始地址。啟動例程從內核獲取命令行參數和環境變量,然后為調用main函數做好準備。 二 進程終止 進程終止的方式…

JO、JNO、JB、JNB命令詳解(從原理上)

JO 當執行到jo命令時,如果ZF標志位為1,則跳轉,反之不跳轉 add eax,ecx jo 00401000c此時eax7fff ffff ,ecx0000 0001,執行完add命令,OF1,原因是eax存儲的最大值是7fffffff,再加1&a…

java 根據類名示例化類_Java類類getProtectionDomain()方法及示例

java 根據類名示例化類類class getProtectionDomain()方法 (Class class getProtectionDomain() method) getProtectionDomain() method is available in java.lang package. getProtectionDomain()方法在java.lang包中可用。 getProtectionDomain() method is used to return …

snagit 9.0注冊碼

8.0的注冊碼 A5CCU-RYNM4-C9ECC-5CWW9-B5R7B 5HCC5-4CCC9-NGXCM-XYDZ5-H6ER6 HLHAD-2CZLC-8XYDC-CC5CB-P289A D5DSC-WZCBM-JRHSC-QVTEV-TR7R8 snagit 9.0: name:Team Z.W.T sn:XMYU5-9CMBC-5SLBZ-DKML2-JE8M5 謝謝 name:Team Z.W.T sn: WDYMP-8ALRM-GVVV2-PH8VK-6MD27 Z…

vue3 配置 @符號

config,ts 配置 有 爆紅 安裝 npm install 一下 然后 配置 路徑提示功能 tsconfig.json 配置 路徑提示功能 一共這兩個路徑配置

android 頁面轉換

通過setContentView來改變布局 很簡單 ViewchangeActivity.java package idrc.change;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class ViewchangeActivity extends Activity {/** Called when the…

mts模式_MTS的完整形式是什么?

mts模式MTS:Microsoft Transaction Server /移動電話服務/多通道電視聲音 (MTS: Microsoft Transaction Server/ Mobile Telephone Service/ Multichannel Television Sound) 1)MTS:Microsoft Transaction Server (1) MTS: Microsoft Transaction Server…

Java——IO流

一,IO流常識 Ⅰ,IO流的概述 1,IO流用來處理設備之間的數據傳輸 2,Java對數據的操作都是通過流的方式 3,Java用于操作流的類都在IO包中 4,流 按流向分為: ①輸入流 ②輸出流 5&#xff0…

JBE、JNBE、JA、JL指令詳解(從原理上)

JBE 當執行到JBE命令時,如果此時的CF標志位或者ZF標志位為1,跳轉,其他不跳轉 相當于小于等于命令 cmp eax,ecx jbe 0040100c執行到cmp命令時,如果此時的eac小于等于ecx,jbe都會跳轉到0040100c 因為小于的…

數組shift方法_數組shift()方法以及JavaScript中的示例

數組shift方法JavaScript shift()方法 (JavaScript shift() method) shift() method is used to remove the first element of an array and returns the deleted element. shift()方法用于刪除數組的第一個元素,并返回刪除的元素。 It changes the array length. …

ArcMap 9使用技巧

ArcMap 9使用技巧技巧1 重疊要素的選擇切換目標:在覆蓋同一區域的多個要素中切換被選擇要素操作步驟:1.在編輯環境中選中覆蓋同一區域的多個要素中的一個要素2.按下N 鍵,被選要素就會自動地切換到另一個圖層的要素3&am…

《軟件》2011年第6期刊登出 《DB 查詢分析器》中斷SQL語句的執行

《軟件》編輯部寄來了2011年第6期樣刊,在2011年第6期,刊登出了本人的論文------“《DB 查詢分析器》中斷SQL語句的執行”。 論文刊登在第42頁,排在第13篇,還比較靠前,呵呵。 在“萬方數據”和“中國期刊全文數據庫”中…

Java——IO流(序列流)

序列化與反序列化 游戲存檔:目的是為了游戲下次上號數據的保存 package com.yy.otherio;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; im…

ret2libc過地址隨機化

程序&#xff1a; #include<stdio.h> char buf2[10] "this is buf2"; void vul() {char buf1[10];gets(buf1); } void main() {write(1,"sinxx",5);vul(); }很明顯&#xff0c;gets函數存在溢出 編譯&#xff1a; gcc -no-pie -fno-stack-protect…

[導入]Lucene并發訪問

作者: yagesi 鏈接&#xff1a;http://yagesi.javaeye.com/blog/165604 發表時間: 2008年02月27日 聲明&#xff1a;本文系JavaEye網站發布的原創博客文章&#xff0c;未經作者書面許可&#xff0c;嚴禁任何網站轉載本文&#xff0c;否則必將追究法律責任&#xff01; 在Luce…

Python程序計算給定文本中單詞的出現

Given a text (paragraph) and a word whose occurrence to be found in the text/paragraph, we have to find the how many times word is repeated in the text. 給定一個文本 (段落)&#xff0c;其出現在文本/段落被找到的單詞 &#xff0c;我們必須找到如何詞多次在文本重…

js私有共有成員

在小項目中對于JavaScript使用&#xff0c;只要寫幾個function就行了。但在大型項目中&#xff0c;尤其是在開發追求 良好的用戶體驗的網站中&#xff0c;如SNS,就會 用到大量的JavaScrpt&#xff0c;有時JavaScript的工作量勝過了C#&#xff0c;這時寫一堆function,就會顯得很…

Java——IO(打印流)

1&#xff0c;打印字節流(PrintStream)的概述&#xff1a; 打印流可以很方便的將對象的toString()結果輸出并且自動加上換行&#xff0c;而且可以使用自動刷出的模式 System.out就是一個PrintStream&#xff0c;其默認向控制臺輸出信息 2&#xff0c;使用方式&#xff1a; …

MATLAB中的正態分布檢驗

要對一組樣本進行正態性檢驗&#xff0c;在MATLAB中&#xff0c;一種方法是用normplot畫出樣本&#xff0c;如果都分布在一條直線上&#xff0c;則表明樣本來自正態分布&#xff0c;否則是非正態分布。 MATLAB中也提供了幾種更正式的檢驗方法&#xff1a;kstest Kolmogorov-Smi…

遠控免殺專題(29)-C#加載shellcode免殺-5種方式(VT免殺率8-70)

0x00 免殺能力一覽表 幾點說明&#xff1a; 1、表中標識 √ 說明相應殺毒軟件未檢測出病毒&#xff0c;也就是代表了Bypass。 2、為了更好的對比效果&#xff0c;大部分測試payload均使用msf的windows/meterperter/reverse_tcp模塊生成。 3、由于本機測試時只是安裝了360全家…