Java中File檔案類之檔案過濾器
檔案過濾器
檔案過濾器是個介面
過濾器一:File[] listFiles(FileFilter filter)
public static void fun1() {
// 測試過濾器(FileFilter)
File file = new File("/Users/lanou/Desktop/level");
// 使用過載 的 listFiles 方法
File[] listFiles = file.listFiles(new MyFilter());
for (File file2 : listFiles) {
System.out.println(file2.getName());
}
}
// 編寫自定義的類 實現過濾器藉口
class MyFilter implements FileFilter{
// 按規則過濾檔案,過濾檔案時 返回false就被過濾 返回true保留
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
return false;
}
return true;
}
}
// 過濾TXT檔案
class MyFilterTXT implements FileFilter{
@Override
public boolean accept(File pathname) {
// 這麼寫相當於 所有第一級的檔案都判斷了一下 字尾是不是txt
// 資料夾也在當中被判斷 然後被過濾掉了
// 判斷是資料夾直接返回true
if (pathname.isDirectory()) {
return true;
}
return pathname.getName().endsWith("txt");
}
}
// 通過過濾器 遍歷列印資料夾中的所有txt檔案
public static void getTXTFile(File file) {
File[] listFiles = file.listFiles(new MyFilterTXT());
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
getTXTFile(subFile);
} else {
System.out.println(subFile.getName());
}
}
}
public static void main(String[] args) {
File file = new File("/Users/lanou/Desktop/level");
getTXTFile(file);
}
過濾器二:File[] listFiles(FilenameFilter filter)
// 測試過濾器(FilenameFilter)
class MyFileNameFilter implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
/*
* 引數1: 傳進來的資料夾根路徑
* 引數2: 該路徑下的檔案的名字和資料夾的名字
*/
// 利用這兩個引數建立一個檔案物件出來
File file = new File(dir, name);
System.out.println(file);
return false;
}
}
// 遍歷所有檔案
public static void getTXTFile(File file) {
File[] listFiles = file.listFiles(new MyFileNameFilter());
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
getTXTFile(subFile);
} else {
System.out.println(subFile.getName());
}
}
}
// 通過FilenameFilter過濾器獲取指定目錄中小於200K的小檔案
class MyFileNameFilterLength implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
File file = new File(dir, name);
// 過濾隱藏檔案
if (file.isHidden()) {
return false;
}
// 資料夾不過濾
if (file.isDirectory()) {
return true;
}
return file.length() < 200 *1024;
}
}
public static void getTXTFile(File file) {
File[] listFiles = file.listFiles(new MyFileNameFilterLength());
for (File subFile : listFiles) {
if (subFile.isDirectory()) {
getTXTFile(subFile);
} else {
System.out.println(subFile.getName());
}
}
}
public static void main(String[] args) {
File file = new File("/Users/lanou/Desktop/level");
getTXTFile(file);
}
相關推薦
Java中File檔案類之檔案過濾器
檔案過濾器 檔案過濾器是個介面 過濾器一:File[] listFiles(FileFilter filter) public static void fun1() {
java中的io流之檔案操作
io流的檔案相關層次圖 File類 檔案是用來儲存資料的,目錄是管理檔案的特殊機制 在Java語言中,檔案和目錄的管理是由java.io.File類來實現的。File類也屬於java.io包,但它不是InputStream或者OutputStream的子類,因此不負責資料
Java中File的getAbsolutePath()包含檔案的名稱
public static void test1(){ File file1 = new File(".\\test1.txt"); File file2 = new File("D:\\workspace\\test\\test1.txt"
Java中常用IO流之檔案流的基本使用姿勢
所謂的 IO 即 Input(輸入)/Output(輸出) ,當軟體與外部資源(例如:網路,資料庫,磁碟檔案)互動的時候,就會用到 IO 操作。而在IO操作中,最常用的一種方式就是流,也被稱為IO流。IO操作比較複雜,涉及到的系統呼叫比較多,相對操作記憶體而言效能很低。然而值得興奮的是,Java提供了很多實現
Java中File檔案類詳解
File 類 File: 1.可以操作檔案 2.可以操作資料夾 3.可以操作檔案的路徑 File的靜態成員變數 獲取路徑分隔符 static String pa
Java中常見異常處理、檔案File類、流的知識點總結
一、常見的異常處理情況 在Java中常見的兩種異常處理:捕捉異常(try-catch-finally)和丟擲異常(throw-throws) 1.捕捉異常(try/catch/finally): 用捕捉異常時,不能try、catch、finally單獨使用,需要配套使用
Java中如何使用隨機存取檔案RandomAcessFile類?
InputStream和OutputStream都只是單方面的讀和寫檔案的內容,如果有隨機的讀取和寫入檔案內容的需要那該怎麼辦? Java為我們提供了一個RandomAcessFile類,它就是專門
java中File的delete()方法刪除檔案失敗的原因
一般來說 java file.delete失敗 有以下幾個原因 1.看看是否被別的程序引用,手工刪除試試(刪除不了就是被別的程序佔用) 2.file是資料夾 並且不為空,有別的資料夾或檔案, 3.極有可能自己前面沒有關閉此檔案的流(我遇到的情況) 這個方法我用來獲
JAVA檔案工具類之——檔案寫入(byte陣列、String方式、url寫入方式)
/** * 將byte陣列寫入檔案 * * @param path * @param fileName * @param content * @throws I
java中File類getPath()、getAbsolutePath()、getCanonicalPath()區別?
mil dir block user out div cnblogs test file 簡單看一下描述,例子最重要。 1、getPath(): 返回定義時的路徑,(就是你寫什麽路徑,他就返回什麽路徑) 2、getAbsolutePath(): 返回絕對路徑,但不會
java中如何使用application.property檔案裡面的值
自定義工具類PropertyUtil,並在該類的static靜態程式碼塊中讀取properties檔案內容儲存在static屬性中以供別的程式使用 package com.hafiz.www.util; import org.slf4j.Logger; import org.slf4j.Log
Java中使用deleteOnExit()刪除臨時檔案出現的問題
這幾天在做一個讀取外部系統檔案資料的任務,需要把外部檔案資料,讀到本地進行處理。 剛好,Java中可以建立臨時檔案,並且任務中要求需要刪除臨時檔案,通過查詢API,Java的File類
HTML5中file方法上傳檔案預覽 示例
效果圖如下: 程式碼如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <s
java中執行緒讀取配置檔案properties
配置檔案在很多方面可以用到,比如資料庫連線,資料庫工廠方法的呼叫,只要在配置檔案中修改即可,不用修改程式,使用起來還是很方便的。 現在演示一下通過執行緒讀取配置檔案進行反射的一種方法。 在專案中新建一個空白檔案,輸入的內容以下內容: item-dao-factory=com.github.Ven13.c
Java中“/”,“.”所代表的檔案路徑
我們在開發的過程中,經常會去讀、寫檔案。在讀寫檔案的時候,就不得不寫檔案的路徑,使用相對路徑的方式有兩種:”/”和 “.” 。在寫檔案的路徑的時候,需要了解一下幾點東西: 在java應用程式中,“.”代表的是執行class檔案時的目錄,而“/”代表的是磁碟分割槽的根
java中的隨機讀寫檔案RandomAccessFile
java中的隨機讀寫檔案: RandomAccessFile raf = new RandomAccessFile(“test.dat”,“rw”); 1.raf.write();這個方法是寫入檔案一個位元組 raf.read();這個方法是讀取檔案一個位
java中File類列印目錄樹狀圖結構
程式碼解釋: 內含遞迴結構! package cn.bjsxt.array01; import java.io.File; public class TextFile { public static void main(String[] args)
java中File類的常用所有方法及其應用
建立: createNewFile()在指定位置建立一個空檔案,成功就返回true,如果已存在就不建立,然後返回false。 mkdir() 在指定位置建立一個單級資料夾。 mkdirs() 在指定位置建立一個多級資料夾。 renameTo(File dest)如果目標檔
Java中讀取classpath下的檔案
專案的工程目錄入如下: 從類路徑(classpath)下讀取檔案: 我們讀取resources目錄下的StringUtils.java檔案。 介紹幾種常見的方法: 1.使用絕對路徑法: File file = new File("D:\\ide
以下是JAVA中三種方式實現檔案字元統計
以下是JAVA中三種方式實現檔案字元統計 package com.lyc.gui; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Ha