Java——File类
生活随笔
收集整理的這篇文章主要介紹了
Java——File类
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一,File類(lèi)的概述和構(gòu)造方法
A:file類(lèi)的概述
file類(lèi)可以理解成一個(gè)路徑
文件夾或者是文件夾路徑
路徑分為絕對(duì)路徑和相對(duì)路徑
絕對(duì)路徑是一個(gè)固定的路徑,從盤(pán)符開(kāi)始
這里的G:\TIM 就是一個(gè)絕對(duì)路徑,是一個(gè)固定的路徑
相對(duì)路徑是相對(duì)于某個(gè)位置而言的
在eclipse下是指當(dāng)前項(xiàng)目
這里的 xxx.txt 就是一個(gè)相對(duì)路徑
在DOS下指的是當(dāng)前路徑
這里的C:\Administrator 就是一個(gè)當(dāng)前路徑
B:file類(lèi)的構(gòu)造方法
file類(lèi)可以理解成一個(gè)路徑
- File(String pathname):根據(jù)一個(gè)路徑得到File對(duì)象
- File(String parent,String chile):根據(jù)一個(gè)目錄和一個(gè)子文件/目錄得到File對(duì)象
- File(File parent,String child):根據(jù)一個(gè)父類(lèi)File對(duì)象和一個(gè)子文件/目錄得到File對(duì)象
由圖可得:
1,G:\TIM\思You.docx 是存在的
2,xxx.txt也是存在
3,yyy.txt是不存在的
代碼實(shí)現(xiàn):
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):根據(jù)一個(gè)父類(lèi)File對(duì)象和一個(gè)子文件/目錄得到File對(duì)象*/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());//(父級(jí)路徑)是File對(duì)象,可以使用File里面的內(nèi)容}private static void demo2() {/*File(String parent,String chile):根據(jù)一個(gè)目錄和一個(gè)子文件/目錄得到File對(duì)象*/String parent = "G:\\TIM"; //(父級(jí)路徑)代表字符串,只能判斷字符串中的內(nèi)容,不能使用File里面的內(nèi)容String child = "思You.docx"; //(子級(jí)路徑)File file = new File(parent,child);System.out.println(file.exists()); //判斷路徑是否是否存在}private static void demo1() {/*File(String pathname):根據(jù)一個(gè)路徑得到File對(duì)象*/File file = new File("G:\\TIM\\思You.docx"); //代表一個(gè)文件的路徑 一個(gè)'/'表示轉(zhuǎn)譯,兩個(gè)'//'表示該目錄下System.out.println(file.exists()); // 絕對(duì)路徑:(判斷是否存在)存在,返回true 不存在,返回falseFile file2 = new File("xxx.txt"); //xxx.txt存在,返回trueSystem.out.println(file2.exists()); // 相對(duì)路徑:(判斷是否存在)存在,返回true File file3 = new File("yyy.txt"); //yyy.txt不存在,返回falseSystem.out.println(file3.exists()); // 相對(duì)路徑:(判斷是否存在)不存在,返回false}}二,File類(lèi)的創(chuàng)建功能
創(chuàng)建功能
- public boolean createNewFile():創(chuàng)建文件,如果存在這樣的文件,就不創(chuàng)建了
- public boolean mkdir():創(chuàng)建文件夾,如果存在這樣的文件夾,就不創(chuàng)建了
- public boolean mkdir():創(chuàng)建多級(jí)文件夾,如果父文件夾不存在,會(huì)幫你創(chuàng)建出來(lái)
代碼實(shí)現(xiàn):
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():創(chuàng)建多級(jí)文件夾,如果父文件夾不存在,會(huì)幫你創(chuàng)建出來(lái)*/File dir3 = new File("ccc\\ddd");System.out.println(dir3.mkdirs());//創(chuàng)建多級(jí)目錄(創(chuàng)建多級(jí)文件夾)}private static void demo2() {/*public boolean mkdir():創(chuàng)建文件夾,如果存在這樣的文件夾,就不創(chuàng)建了*/File dir1 = new File("aaa");//創(chuàng)建文件夾,如果父文件夾存在,不創(chuàng)建,并返回false;如果父文件夾不存在,創(chuàng)建,并返回trueSystem.out.println(dir1.mkdir());File dir2 = new File("bbb.txt");//這樣寫(xiě)是可以的,創(chuàng)建的是文件夾,只是文件夾的名稱(chēng)為:bbb.txt而已,文件夾也是可以有后綴的System.out.println(dir2.mkdir());}private static void demo1() throws IOException {/*public boolean createNewFile():創(chuàng)建文件,如果存在這樣的文件,就不創(chuàng)建了*/File file = new File("wsq.txt");System.out.println(file.createNewFile()); //如果沒(méi)有就創(chuàng)建,返回trueFile file2 = new File("zzz");System.out.println(file2.createNewFile()); //如果有就不創(chuàng)建了,返回false}}二,File類(lèi)的重命名和刪除功能
A:重命名和刪除功能
- public boolean renameTo(File dest):把文件重命名為指定的文件路徑
- public boolean delete():刪除文件或文件夾
B:重命名注意事項(xiàng)
- 如果路徑名相同,就是改名
- 如果路徑名不同,就是改名并剪切
C:刪除注意事項(xiàng)
- Java中的刪除不走回收站
- 要?jiǎng)h除一個(gè)文件夾,請(qǐng)注意該文件夾內(nèi)不能包含文件或者文件夾
代碼實(shí)現(xiàn):
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文件(刪除時(shí),不走回收站的,也就是說(shuō) 會(huì)永久徹底刪除)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盤(pán)下wsq.txt}}程序運(yùn)行之后:
會(huì)將yy.txt轉(zhuǎn)化成G:\TIM下的wsq.txt
三,File類(lèi)的判斷功能
判斷功能
- 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是一個(gè)文件夾
zzz是一個(gè)文件
aaa.txt是一個(gè)文件
將aaa.txt設(shè)置為隱藏
代碼實(shí)現(xiàn):
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 系統(tǒng)認(rèn)為所以的文件都是可讀的file.setWritable(true);System.out.println(file.canWrite()); //Windows 系統(tǒng)可以設(shè)置為不可寫(xiě)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是一個(gè)文件夾System.out.println(dir1.isDirectory());//判斷是否是文件夾 ccc 是一個(gè)文件夾,所以返回trueFile dir2 = new File("zzz"); //這里的zzz是一個(gè)文件System.out.println(dir2.isDirectory());//判斷是否是文件夾 zzz 是一個(gè)文件,所以返回falseSystem.out.println(dir1.isFile()); //判斷是否是文件 ccc 是一個(gè)文件夾,所以返回falseSystem.out.println(dir2.isFile()); //判斷是否是文件 zzz 是一個(gè)文件,所以返回trueSystem.out.println(dir1.exists()); //判斷是否存在,存在返回true,不存在返回falseSystem.out.println(dir2.exists()); //判斷是否存在,存在返回true,不存在返回false}}四,File類(lèi)的獲取功能
- public String getAbsolutepath():’獲取絕對(duì)路徑
- public String getPath():獲取路徑
- public String getName():獲取名稱(chēng)
- public long length():獲取長(zhǎng)度、字節(jié)數(shù)
- public long lastModified():獲取最后一次的修改時(shí)間(毫秒值)
- public String [] list():獲取指定目錄下的所有文件或者文件夾名稱(chēng)數(shù)組
- public File [] listFiles():獲取指定目錄下的所有文件或者文件夾的File數(shù)組
代碼實(shí)現(xiàn):
package com.yy.file;import java.io.File; import java.text.SimpleDateFormat; import java.util.Date;public class Demo5_FileMethod { /*** public String getAbsolutepath():’獲取絕對(duì)路徑* public String getPath():獲取路徑* public String getName():獲取名稱(chēng)* public long length():獲取長(zhǎng)度、字節(jié)數(shù)* public long lastModified():獲取最后一次的修改時(shí)間(毫秒值)* public String [] list():獲取指定目錄下的所有文件或者文件夾名稱(chēng)數(shù)組* public File [] listFiles():獲取指定目錄下的所有文件或者文件夾的File數(shù)組* */public static void main(String[] args) {demo1();File dir = new File("G:/TIM"); //獲取名稱(chēng)String [] arr = dir.list(); for (String string : arr) {System.out.println(string);}System.out.println();File [] subFiles = dir.listFiles(); //獲取全路徑(每一個(gè)file對(duì)象) for (File file : subFiles) {System.out.println(file); //重寫(xiě)了Object類(lèi)中的toString()方法}System.out.println();}private static void demo1() {File file1 = new File("ccc.txt"); //相對(duì)路徑File file2 = new File("E:\\eclipse_win64\\新建文件夾\\day19\\ccc.txt"); //絕對(duì)路徑System.out.println(file1.getAbsolutePath()); //獲取絕對(duì)路徑System.out.println(file2.getAbsolutePath()); //獲取絕對(duì)路徑System.out.println();System.out.println(file1.getPath()); //獲取構(gòu)造方法里面的路徑,傳的是啥,返回啥System.out.println(file2.getPath()); //獲取構(gòu)造方法里面的路徑,傳的是啥,返回啥System.out.println();System.out.println(file1.getName()); //獲取文件或者是文件夾的名稱(chēng)System.out.println(file2.getName()); //獲取文件或者是文件夾的名稱(chēng)System.out.println();System.out.println(file1.length()); //獲取文件或者是文件夾的長(zhǎng)度、字節(jié)數(shù)System.out.println(file2.length()); //獲取文件或者是文件夾的長(zhǎng)度、字節(jié)數(shù)System.out.println();System.out.println(file1.lastModified()); //獲取文件最后一次的修改時(shí)間(毫秒值)System.out.println(file2.lastModified()); //獲取文件最后一次的修改時(shí)間(毫秒值)System.out.println();Date wsq = new Date(file1.lastModified()); Date yy = new Date(file2.lastModified());System.out.println(wsq); //獲取文件最后一次的修改時(shí)間(年月日英文形式)System.out.println(yy); //獲取文件最后一次的修改時(shí)間(年月日英文形式)System.out.println();SimpleDateFormat qq = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");System.out.println(qq.format(wsq)); //獲取文件最后一次的修改時(shí)間(年月日簡(jiǎn)易中文形式)System.out.println(qq.format(yy)); //獲取文件最后一次的修改時(shí)間(年月日簡(jiǎn)易中文形式)System.out.println();}}運(yùn)行結(jié)果如下:
五,File類(lèi)(輸出指定目錄下指定后綴的文件名)
- 問(wèn)題:判斷E盤(pán)目錄下是否有后綴名為.jpg的文件,如果有,就輸出該文件名稱(chēng)
代碼如下:
package com.yy.test;import java.io.File; import java.io.FilenameFilter;public class Test3 { /*** 判斷E盤(pán)目錄下是否有后綴名為.jpg的文件,如果有,就輸出該文件名稱(chēng)* */public static void main(String[] args) {File dir = new File("E:\\");/*String [] arr = dir.list(); //獲取E盤(pán)下所有的文件或者文件夾for (String wsq : arr) {if(wsq.endsWith(".jpg"));System.out.println(wsq);}*/File [] subFiles = dir.listFiles(); //獲取E盤(pán)下所有的文件或者文件夾對(duì)象for (File subFile : subFiles) {if(subFile.isFile() && subFile.getName().endsWith(".jpg")){System.out.println(subFile);}} }六,File類(lèi)(文件名稱(chēng)過(guò)濾器)
代碼如下:
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);} } }總結(jié)
以上是生活随笔為你收集整理的Java——File类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 驻马店看子宫纵隔最好的医院推荐
- 下一篇: Java——IO流(序列流)