色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號

回到頂部

主站蜘蛛池模板: 黑人巨大无码中文字幕无码 | 粗壮挺进人妻水蜜桃成熟 | 国产无套抽出白浆来 | 小柔在教室轮流澡到高潮视频 | 久久无码国产专区精品 | 免费少妇A级毛片 | 亚洲精品无人一区二区 | 你懂得视频在线 | 无码精品国产一区二区三区免费 | 在线中文免费视频 | 久久蜜桃精品一区二区三区综合网 | 成人A级毛片免费视频 | 国产超碰人人做人人爽av大片 | 日韩欧美在线视频观看 | 成人VA亚洲VA欧美天堂 | a级特黄的片子 | 韩国免费一区 | 国产人妻久久精品一区二区三区 | 黑人巨茎和中国美女视频 | 色婷婷综合久久久久中文字幕 | 亚洲精品欧美精品日韩精品 | 真实国产乱人伦在线视频播放 | 亚欧美无遮挡HD高清在线视频 | 小罗莉极品一线天在线 | 国产成人剧情AV果冻传媒 | 日本一级一片免费视频 | 中文字幕av无码一区二区蜜芽三区 | 中文字幕精品久久久久人妻红杏1 | 伊人色综合一区二区三区影院视频 | 国产精品自在拍首页视频 | 中文字幕最近 | 日本老头老太XING交 | 国产亚洲欧美日韩高清 | 亚洲国产成人欧美在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 欧洲洲一区二区精华液 | 亚洲午夜成人片 | 免费无码国模国产在线观看 | 女人被添全过程a片免费视频 | 国精品午夜福利视频不卡 | 中文字幕不卡在线观看 |