色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_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號

回到頂部

主站蜘蛛池模板: 亚洲欧美激情四射 | 亚洲精品无码久久久久av麻豆 | 中文一区一区三区免费 | 射色av | 99久久免费国产精品 | 四虎亚洲精品私库AV在线 | 三级三级久久三级久久18 | 国产毛片毛片毛片毛片毛片 | 国产女主播视频一区二区三区 | 欧美日本91精品久久久久 | 制服 丝袜 亚洲 中文 综合 | 91剧场| 国产超碰人人爽人人做AV | 日本妇乱子伦视频 | 免费AV大片在线观看入口 | 成在线人免费视频一区二区 | 在线亚洲精品国产二区图片欧美 | 一级爱做片 | 日韩欧美群交P片內射中文 亚洲综合区夜夜久久久 | FREEZEFRAME丰满少妇 | 日韩a级一片 | 亚洲一区二区三区无码久久 | 亚洲亚洲人成网站网址 | 少妇裸体性生交 | 中午字幕无线码一区2020 | 天下第一社区视频在线观看 | 精品久久久久久777米琪桃花 | 99国产亚洲 | 嫩模被啪的呻吟不断 | 内射女校花一区二区三区 | 乌克兰18极品XX00喷水 | 成人午夜视频一区二区无码 | 日日躁狠狠躁狠狠爱 | 夜夜操狠狠操 | 日本人妻巨大乳挤奶水免费 | 99久久成人精品国产网站 | 亚洲综合日韩久久成人AV | 亚洲国产成人精品无码区在线播放 | 青草国产精品久久久久久久久 | 极品人妻videos人妻 | 九色综合狠狠综合久久 |