IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置:首頁 > 學習資源 > 講師博文 > java file類創建文件

java file類創建文件 時間:2018-02-07      來源:未知

我們的程序經常需要獲取磁盤上文件的相關信息或在磁盤上創建新的文件,這就需要用到File類。需要注意的是:File類的對象主要用來獲得文件本身的信息,而不涉及對文件的讀寫操作。

創建File類對象

創建File類有4個方法

· File(String filename) 通過將給定的路徑名字符串轉換為抽象路徑名來創建新的 File實例。

· File(URI uri) 通過將給定的 file: URI轉換為抽象路徑名來創建新的 File實例。

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

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

Java file類

獲取文件的屬性

經常使用File類的下列方法來獲取文件本身的一些信息

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

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

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

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

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

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

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

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

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

· public long length() 獲取文件長度(單位是字節)。

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

測試類 FileTest.java

準備工作:在桌面上新建一個文件夾dirTest,再在里面新建一個文本文檔,完整路徑為:C:\Users\PRO\Desktop\dirTest\fileTest.txt,里面隨便寫點什么內容。

package com.fs.file;

import java.io.File;

public class FileTest {

public static void main(String[] args) {

// 獲取文件對象,注意使用轉義字符

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

// 判斷文件是否存在 true

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

// 判斷文件是否是一個普通文件 true

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

// 判斷文件是否是一個目錄 false

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

// 判斷文件是否可讀 true

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

// 判斷文件是否可寫 true

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

// 判斷文件是否隱藏 false

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

// 獲取文件名字 fileTest.txt

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

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

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

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

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

// 獲取文件長度 9971

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

// 獲取文件最后修改時間 1517796006952

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

}

}

目錄

目錄與文件的創建與刪除

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

· public boolean mkdir() 創建目錄。

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

列出目錄中的文件

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

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

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

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

FilenameFliter接口

· 該接口有一個方法,第一個參數是指要查詢的文件夾,第二個參數是指指定的類型

public boolean accept(File dir, String name);

· 當File對象是一個目錄且調用list(FilenameFilter obj)或listFiles(FilenameFilter obj)方法時,obj不斷回掉接口方法,當返回值為true時,list方法就將名字為name的文件存放到返回的數組中。

測試類 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的目錄對象

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

// 在磁盤中創建目錄

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

// 在目錄中循環創建5個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());

}

// 數組里面裝的是文件名 如javaFile0.java

String[] list = dirFile.list();

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

// 數組里面裝的是文件,以全路徑的方式表現出來 如C:\Users\PRO\Desktop\dirTest2\javaFile0.java

File[] listFiles = dirFile.listFiles();

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

// 通過匿名內部類的方式來實現FilenameFilter接口,獲取所有以“.java”結尾的文件

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

@Override

public boolean accept(File dir, String name) {

return name.endsWith(".java");

}

});

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

// 通過自己編寫類來實現FilenameFilter接口,獲取所有以“.txt”結尾的文件

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

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

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

}

}

自己編寫的實現FilenameFiler接口的類 MyFlieFilter.java

package com.fs.file;

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

public class MyFlieFilter implements FilenameFilter{

// 定義一個私有變量,表示要查找的文件類型

private String filerName;

// 重寫接口中的方法

@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

· 我們知道,普通文件能直接刪除,但是當目錄下還有文件或目錄時,不能直接調用delete()方法刪除目錄,那么我們就只能通過遞歸來刪除目錄了。

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);

}

// 創建緩存文件夾,里面包含多個文件夾和文件,并還有多層結構

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()) {

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

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

File[] files = file.listFiles();

// 跳出遞歸條件:該目錄下文件已經被刪完

if (files == null) {

return;

}

// 自己調用自己,遞歸刪除文件

for (File subFile : files) {

deleteAllFile(subFile);

}

}

// 刪除文件本身

file.delete();

}

}

}

上一篇:java抽象類的作用

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

戳我查看嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 石家庄大正机电设备有限公司_| 河北万岁药业有限公司| 宣城安安橡塑有限责任公司| 随州网站建设_随州建站公司_随州SEO优化排名_随州网络公司-随州市金思维网络科技有限公司 | 紫铜箔(带)导电胶带定做,定做紫铜箔(带)导电胶带厂家[价格]-艾飞敏铜箔 | 童程童美少儿编程培训课程 - 上市公司缔造少儿编程专业化品牌20年 | 塑胶篮球场施工|塑胶网球场施工|幼儿园塑胶施工|石家庄亚强体育公司 | 郑州网站建设_郑州网站制作_郑州网络公司-三猫网络 | 伸缩接头,限位伸缩接头,传力接头,可拆卸接头,橡胶接头,衬四氟橡胶接头,橡胶软连接,橡胶补偿器,防水套管- 巩义市隆盛管道设备有限公司 | 主题公园设计|主题公园规划|水上乐园设计|龙翔设计|龙翔景观|龙翔文旅|深圳市龙翔设计景观工程有限公司 | 铁谷网-垂直于铸造产业链服务平台、原材料采购网、行业资讯网 | 湖南长沙手术室、实验室、无尘室、洁净室、无尘车间的净化工程装修公司-福临建设 | 泰安华特玻璃钢有限公司|泰安玻璃钢|泰安华特玻璃钢 | 无尘车间_净化工程_GMP食品药品化妆品电子厂无尘净化车间_无尘室 | 上海轮毂生产厂家-改装轮毂-锻造轮毂价格-上海毂信汽车零部件有限公司 | 蒸汽发生器-电加热蒸汽发生器、燃油蒸汽发生器、燃气蒸汽发生器设备厂家-诺贝思蒸汽发生器 | 山东装卸登车桥_液压装卸升降平台_固定|移动登车桥_山东牛斗重工厂家 | 喷雾干燥机价格|小型喷雾干燥机|实验室喷雾干燥机厂家-那艾 | 小型环境空气质量连续监测系统-烟气排放连续监测仪(碳排放)-青岛明德环保仪器有限公司 | 庭院大门,铝艺大门厂家,别墅庭院大门「免费设计」汉兰达庭院门厂家 | 图表秀——免费在线图表制作工具,数据可视化工具 | 邛崃人才网_邛崃招聘网_求职找工作平台| 智能照明模块_智能照明控制器_照明控制系统_智能调光模块_西安邦华电气工程有限公司 | 免费的PPT幻灯片演示制作软件,动画视频及课件制作软件 - Focusky万彩演示大师官网 | 智慧园区平台_智慧园区智慧写字楼运营平台领导品牌 | 锌钢护栏,铁艺护栏,围墙护栏,锌钢围墙护栏,铁艺围墙护栏-互润金属丝网厂 | 苏州不锈钢_江苏不锈钢_江苏不锈钢板_苏州模具钢_苏州合金钢_苏州特种合金_苏州不锈钢板_304不锈钢棒_苏州塞硒五金制品有限公司 苏州ERP定制|苏州CRM|苏州OA|苏州BPM|进销存管理系统-苏州中尚信息科技有限公司 | 粮食烘干机|玉米烘干机|稻谷烘干机|小麦烘干机|大型连续烘干塔|500吨连续烘干塔|钢板仓|-郑州新光矿山机械制造有限公司 | 妙手官网—商品管理、批量修改、订单处理、营销水印 | 潍坊亿宏重工机械有限公司,破碎机,高性能立磨机,颚式破碎机,锤式破碎机反击式破碎机,重锤式破碎机,高性能反击式破碎机,圆锥式破碎机,给料机系列,链板给料机系列,简易给料机系列,振动给料机 | 重庆自考网-重庆自学考试| 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 - 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 秦皇岛市信恒电子科技有限公司 秦皇岛市华谊彩印有限公司 | 宜昌江峡船用机械有限责任公司欢迎您! | 红河州春辉装饰有限公司官网 | 九江市京邦玻纤有限公司| 石家庄UPS_石家庄UPS电源_石家庄广亚电子科技有限公司 | 优质课网_收录全国及各省市最新优质课视频,说课视频,名师课例课堂实录,高效课堂教学视频,观摩展示公开示范优秀课视频,教学大赛视频! | 酒博会丨京酒展丨北京国际酒业博览会 | 育婴师_催乳师证_月嫂证怎么考_育婴师证报考需要什么条件-家政培训网 | 青浦区摄像头安装/青浦区无线网络覆盖/青浦区网络调试公司/青浦区IT外包公司/金山区网络维护公司/金山区防火墙调试公司 | 威学一百-专注国际学校择校备考-DSE-A-level-雅思-托福-OSSD-港澳台联考-AP-IGCSE-IB-AMC-多邻国-PTE-SAT-SSAT-小语种(如日语,韩语,德语,法语,西班牙语,意大利语,俄语,泰语)等考试培训,为出国留学学生提供个性化定制性学习方案,线下实体面授+线上网络课程, 提供一对一,小班课等多种班型 |