亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當(dāng)前位置:首頁(yè) > 學(xué)習(xí)資源 > 講師博文 > java file類(lèi)創(chuàng)建文件

java file類(lèi)創(chuàng)建文件 時(shí)間:2018-02-07      來(lái)源:未知

我們的程序經(jīng)常需要獲取磁盤(pán)上文件的相關(guān)信息或在磁盤(pán)上創(chuàng)建新的文件,這就需要用到File類(lèi)。需要注意的是:File類(lèi)的對(duì)象主要用來(lái)獲得文件本身的信息,而不涉及對(duì)文件的讀寫(xiě)操作。

創(chuàng)建File類(lèi)對(duì)象

創(chuàng)建File類(lèi)有4個(gè)方法

· File(String filename) 通過(guò)將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建新的 File實(shí)例。

· File(URI uri) 通過(guò)將給定的 file: URI轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建新的 File實(shí)例。

· File(File parent, String child) 從父抽象路徑名和子路徑名字符串創(chuàng)建新的 File實(shí)例。

· File(String parent, String child) 從父路徑名字符串和子路徑名字符串創(chuàng)建新的 File實(shí)例。

Java file類(lèi)

獲取文件的屬性

經(jīng)常使用File類(lèi)的下列方法來(lái)獲取文件本身的一些信息

· public boolean exists() 判斷文件或目錄是否存在。

· public boolean isFile() 判斷文件是否是一個(gè)普通文件,而不是目錄。

· public boolean isDirectory() 判斷文件是否是一個(gè)目錄。

· public boolean isHidden() 判斷文件是否是隱藏文件。

· public boolean canRead() 判斷文件是否是可讀的。

· public boolean canWrite() 判斷文件是否是可寫(xiě)的。

· public String getName() 獲取文件名字。

· public String getAbsolutePath() 獲取文件的絕對(duì)路徑。

· public String getParent() 獲取文件的父目錄。

· public long length() 獲取文件長(zhǎng)度(單位是字節(jié))。

· public long lastModified() 獲取文件最后的修改時(shí)間(單位是毫秒)。

測(cè)試類(lèi) FileTest.java

準(zhǔn)備工作:在桌面上新建一個(gè)文件夾dirTest,再在里面新建一個(gè)文本文檔,完整路徑為:C:\Users\PRO\Desktop\dirTest\fileTest.txt,里面隨便寫(xiě)點(diǎn)什么內(nèi)容。

package com.fs.file;

import java.io.File;

public class FileTest {

public static void main(String[] args) {

// 獲取文件對(duì)象,注意使用轉(zhuǎn)義字符

File file = new File("C:\\Users\\PRO\\Desktop\\dirTest\\fileTest.txt");

// 判斷文件是否存在 true

System.out.println(file.exists());

// 判斷文件是否是一個(gè)普通文件 true

System.out.println(file.isFile());

// 判斷文件是否是一個(gè)目錄 false

System.out.println(file.isDirectory());

// 判斷文件是否可讀 true

System.out.println(file.canRead());

// 判斷文件是否可寫(xiě) true

System.out.println(file.canWrite());

// 判斷文件是否隱藏 false

System.out.println(file.isHidden());

// 獲取文件名字 fileTest.txt

System.out.println(file.getName());

// 獲取文件絕對(duì)路徑 C:\Users\PRO\Desktop\dirTest\fileTest.txt

System.out.println(file.getAbsolutePath());

// 獲取文件的父目錄 C:\Users\PRO\Desktop\dirTest

System.out.println(file.getParent());

// 獲取文件長(zhǎng)度 9971

System.out.println(file.length());

// 獲取文件最后修改時(shí)間 1517796006952

System.out.println(file.lastModified());

}

}

目錄

目錄與文件的創(chuàng)建與刪除

· public boolean createNewFile() 創(chuàng)建普通文件。

· public boolean mkdir() 創(chuàng)建目錄。

· public boolean delete() 刪除文件或目錄。

列出目錄中的文件

· public String[] list() 用字符串的形式返回目錄下的全部文件

· public File[] listFiles() 用File對(duì)象的形式返回目錄下的全部文件

· public String[] list(FilenameFilter obj) 用字符串的形式返回目錄下指定類(lèi)型的全部文件

· public File[] listFiles(FilenameFilter obj) 用File對(duì)象的形式返回目錄下指定類(lèi)型的全部文件

FilenameFliter接口

· 該接口有一個(gè)方法,第一個(gè)參數(shù)是指要查詢(xún)的文件夾,第二個(gè)參數(shù)是指指定的類(lèi)型

public boolean accept(File dir, String name);

· 當(dāng)File對(duì)象是一個(gè)目錄且調(diào)用list(FilenameFilter obj)或listFiles(FilenameFilter obj)方法時(shí),obj不斷回掉接口方法,當(dāng)返回值為true時(shí),list方法就將名字為name的文件存放到返回的數(shù)組中。

測(cè)試類(lèi) DirTest.java

package com.fs.file;

import java.io.File;import java.io.FilenameFilter;import java.io.IOException;import java.util.Arrays;

public class DirTest {

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

// 獲取File的目錄對(duì)象

File dirFile = new File("C:\\Users\\PRO\\Desktop\\dirTest2");

// 在磁盤(pán)中創(chuàng)建目錄

System.out.println(dirFile.mkdir());

// 在目錄中循環(huán)創(chuàng)建5個(gè)txt文件和java文件

for (int i = 0; i < 5; i++) {

File txtFile = new File("C:\\Users\\PRO\\Desktop\\dirTest2\\texFile" + i + ".txt");

File javaFile = new File("C:\\Users\\PRO\\Desktop\\dirTest2\\javaFile" + i + ".java");

System.out.println(txtFile.createNewFile());

System.out.println(javaFile.createNewFile());

}

// 數(shù)組里面裝的是文件名 如javaFile0.java

String[] list = dirFile.list();

System.out.println(Arrays.toString(list));

// 數(shù)組里面裝的是文件,以全路徑的方式表現(xiàn)出來(lái) 如C:\Users\PRO\Desktop\dirTest2\javaFile0.java

File[] listFiles = dirFile.listFiles();

System.out.println(Arrays.toString(listFiles));

// 通過(guò)匿名內(nèi)部類(lèi)的方式來(lái)實(shí)現(xiàn)FilenameFilter接口,獲取所有以“.java”結(jié)尾的文件

String[] javaList = dirFile.list(new FilenameFilter() {

@Override

public boolean accept(File dir, String name) {

return name.endsWith(".java");

}

});

System.out.println(Arrays.toString(javaList));

// 通過(guò)自己編寫(xiě)類(lèi)來(lái)實(shí)現(xiàn)FilenameFilter接口,獲取所有以“.txt”結(jié)尾的文件

MyFlieFilter myFlieFilter = new MyFlieFilter(".txt");

String[] txtList = dirFile.list(myFlieFilter);

System.out.println(Arrays.toString(txtList));

}

}

自己編寫(xiě)的實(shí)現(xiàn)FilenameFiler接口的類(lèi) MyFlieFilter.java

package com.fs.file;

import java.io.File;import java.io.FilenameFilter;

public class MyFlieFilter implements FilenameFilter{

// 定義一個(gè)私有變量,表示要查找的文件類(lèi)型

private String filerName;

// 重寫(xiě)接口中的方法

@Override

public boolean accept(File dir, String name) {

// TODO Auto-generated method stub

return name.endsWith(filerName);

}

public String getFilerName() {

return filerName;

}

public void setFilerName(String filerName) {

this.filerName = filerName;

}

public MyFlieFilter(String filerName) {

super();

this.filerName = filerName;

}

}

小案例 刪除指定文件夾(如緩存目錄)ClearCache.java

· 我們知道,普通文件能直接刪除,但是當(dāng)目錄下還有文件或目錄時(shí),不能直接調(diào)用delete()方法刪除目錄,那么我們就只能通過(guò)遞歸來(lái)刪除目錄了。

package com.fs.file;

import java.io.File;import java.io.IOException;

public class ClearCache {

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

// creatCacheDir();

File file = new File("C:\\Users\\PRO\\Desktop\\cacheTest");

deleteAllFile(file);

}

// 創(chuàng)建緩存文件夾,里面包含多個(gè)文件夾和文件,并還有多層結(jié)構(gòu)

public static void creatCacheDir() throws IOException {

File cacheDir = new File("C:\\Users\\PRO\\Desktop\\cacheTest");

cacheDir.mkdir();

for (int i = 0; i < 5; i++) {

File childDir = new File("C:\\Users\\PRO\\Desktop\\cacheTest\\childDir" + i);

File childFile = new File("C:\\Users\\PRO\\Desktop\\cacheTest\\childFile" + i);

childDir.mkdir();

childFile.createNewFile();

for (int j = 0; j < 5; j++) {

File grandChildDir = new File("C:\\Users\\PRO\\Desktop\\cacheTest\\childDir" + i + "\\grandChildDir" + j);

File grandChildFile = new File("C:\\Users\\PRO\\Desktop\\cacheTest\\childDir" + i + "\\grandChildFile" + j);

grandChildDir.mkdir();

grandChildFile.createNewFile();

}

}

}

// 遞歸刪除文件夾

public static void deleteAllFile(File file) {

// 如果文件為空,直接返回

if (file == null) {

return;

}

if (file.exists()) {

if (file.isFile()) {

// 如果該文件是普通文件,直接刪除

file.delete();

System.out.println("已刪除文件" + file.getName());

} else if (file.isDirectory()) {

// 如果該文件是目錄,則循環(huán)遍歷該目錄,再遞歸刪除該文件

// 獲得該目錄下所有文件

File[] files = file.listFiles();

// 跳出遞歸條件:該目錄下文件已經(jīng)被刪完

if (files == null) {

return;

}

// 自己調(diào)用自己,遞歸刪除文件

for (File subFile : files) {

deleteAllFile(subFile);

}

}

// 刪除文件本身

file.delete();

}

}

}

上一篇:java抽象類(lèi)的作用

下一篇:嵌入式硬件工程師需要學(xué)習(xí)什么?哪些技能需要掌握?

戳我查看嵌入式每月就業(yè)風(fēng)云榜

點(diǎn)我了解華清遠(yuǎn)見(jiàn)高校學(xué)霸學(xué)習(xí)秘籍

猜你關(guān)心企業(yè)是如何評(píng)價(jià)華清學(xué)員的

干貨分享
相關(guān)新聞
前臺(tái)專(zhuān)線(xiàn):010-82525158 企業(yè)培訓(xùn)洽談專(zhuān)線(xiàn):010-82525379 院校合作洽談專(zhuān)線(xiàn):010-82525379 Copyright © 2004-2024 北京華清遠(yuǎn)見(jiàn)科技發(fā)展有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 亚洲精品日本 | 韩国三级hd中文字幕叫床 | 亚洲国产人成在线观看 | 日日摸日日添夜夜爽97 | 色中文网 | 目韩一区二区三区系列片丶 | 日本黄色小视频 | 妻子5免费完整 | 日韩视频一区二区三区 | 国产欧美激情一区二区三区-老狼 | 国产在线果冻传媒在线观看 | 国产精品香蕉一区二区三区 | 综合色99 | 毛片一级做a爰片性色 | 九九精品国产99精品 | 亚洲一级免费视频 | 蜜臀tv| xxxx日韩 | 日本a级黄色大片 | 久草资源福利 | 亚洲成a人v大片在线观看 | 99热这里只有精品2 99热这里只有精品9 | 99热66 | 国产精品美女视视频专区 | 久久久久久久免费视频 | 欧美午夜理伦三级在线观看 | 欧美大片一区二区三区 | 成在线人视频免费视频 | 蜜桃视频www在线观看免费视频 | 日本黄色片免费看 | 久久这里只有精品免费看青草 | 99re这里只有精品在线 | 日本三级韩国三级在线观看a级 | 欧美综合一区二区三区 | 日本的黄色片 | 日本天堂网在线 | 日本高清午夜色wwwσ | 日本成人免费在线视频 | 国产人妖ts在线视频播放 | 国内精品自在自线2020 | 中文字幕在线观看不卡视频 |