黄色一级毛片网站_日韩在线国产_国产一级a在线观看_亚洲综合一区在线_99av视频_久久久7

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

java file類創(chuàng)建文件 時間:2018-02-07      來源:未知

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

創(chuàng)建File類對象

創(chuàng)建File類有4個方法

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

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

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

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

Java file類

獲取文件的屬性

經(jīng)常使用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() 獲取文件長度(單位是字節(jié))。

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

}

}

目錄

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

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

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

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

列出目錄中的文件

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

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

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

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

FilenameFliter接口

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

public boolean accept(File dir, String name);

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

測試類 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");

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

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

// 在目錄中循環(huán)創(chuàng)建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());

}

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

String[] list = dirFile.list();

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

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

File[] listFiles = dirFile.listFiles();

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

// 通過匿名內部類的方式來實現(xiàn)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));

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

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

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

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

}

}

自己編寫的實現(xiàn)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);

}

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

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;

}

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

for (File subFile : files) {

deleteAllFile(subFile);

}

}

// 刪除文件本身

file.delete();

}

}

}

上一篇:java抽象類的作用

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

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

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

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

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

回到頂部

主站蜘蛛池模板: 国产一级做a爰片久久 | 亚洲av日韩精品久久久久久a | 色就色综合偷拍区第三十七页 | av一区二区三区 | 日本a v免费观看 | 特黄一区二区三区 | 精品乱码一区二区三四区 | 久久精品99视频 | 精品国产鲁一鲁一区二区张丽 | 亚洲精品一区二区三区蜜桃久 | 粉嫩小仙女扒开双腿自慰 | 久久精品日产第一区二区三区在哪里 | 一区二区久久精品66国产精品 | 亚洲伊人成人 | 成人综合区一区 | 精品国产一区二区三区久久久 | 少妇把腿扒开让我添69 | 精品少妇爆乳无码专区久久 | 天天摸天天透天天添 | 日本免费中文字幕 | 日韩中文在线视频 | 久久久4久久久久8久久久久久 | 99er在线观看视频 | h免费在线 | 法国极品成人h版 | 日韩精品――色哟哟 | 久久99国产精品二区不卡 | 国产精品久久久久久久久久了 | 久久毛片少妇高潮免费看 | 国产一级激情 | 国产成年无码a影片在线观看 | 国产91综合一区在线观看 | 久久精品这里精品 | 九九久久久 | 亚洲国产精品热久久 | 久久精品免费观看 | 日日摸夜夜添夜夜添老人妇人 | 亚洲二区在线 | 亚洲欧美日韩综合在线 | 国产东北一级毛片 | 欧美日韩色网专区 |