1. 程式人生 > >IO流_檔案過濾器改進輸出指定目錄下指定字尾名的檔名稱案例、帶檔名稱過濾器的list()方法的原始碼

IO流_檔案過濾器改進輸出指定目錄下指定字尾名的檔名稱案例、帶檔名稱過濾器的list()方法的原始碼

package cn.itcast_08;

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

/*
 * 判斷E盤目錄下是否有後綴名為.jpg的檔案,如果有就輸出此檔案的名稱
 * 		A:先獲取所有的,然後遍歷的時候,依次判斷,如果滿足條件就輸出
 * 		B:獲取的時候就已經是滿足條件的了,然後輸出即可。
 *	
 * 要想實現這個效果,就必須實現一個介面:檔名稱過慮器
 * 		public String[] list(FilenameFilter filter)
 * 		public File[]	listFiles(FilenameFilter filter)
 */
public class FileDemo2 {
	public static void main(String[] args) {
		// 建立檔案物件
		File file = new File("e:\\");

		// 獲取該檔案下所有檔案或者資料夾的String陣列
		// public String[] list(FilenameFilter filter)
		String[] strArray = file.list(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				// return false;
				// return true;
				// 通過這個測試,我們就知道了,到底把這個檔案或者資料夾的名稱加不加到陣列中,取決於這裡的返回值是true還是false
				// 所以,這個true或者false應該是通過某種判斷得到的
				// System.out.println(dir + "---" + name);
				// File files = new File(dir, name);
				// System.out.println(files);
				// boolean flag = files.isFile();
				// boolean flag2 = name.endsWith(".jpg");
				// return flag && flag2;
				return new File(dir, name).isFile() && name.endsWith(".jpg");
			}
		});

		// 遍歷
		for (String s : strArray) {
			System.out.println(s);
		}
	}
}
public String[] list(FilenameFilter filter) {
	String names[] = list();
	if ((names == null) || (filter == null)) {
	    return names;
	}
	ArrayList v = new ArrayList();
	for (int i = 0 ; i < names.length ; i++) {
	    if (filter.accept(this, names[i])) {
		v.add(names[i]);
	    }
	}
	return (String[])(v.toArray(new String[v.size()]));
    }


相關推薦

IO_檔案過濾器改進輸出指定目錄指定字尾檔名案例檔名過濾器list()方法原始碼

package cn.itcast_08; import java.io.File; import java.io.FilenameFilter; /* * 判斷E盤目錄下是否有後綴名為.jpg

IO_複製指定目錄指定字尾檔案並修改名稱案例

package cn.itcast_04; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; impo

使用者登入使用java的IO實現將資料儲存到data目錄

一、效果展示 1、最初可以看到data/data目錄下該專案只有一個cache資料夾和lib檔案 第一次執行程式,使用者名稱和密碼皆為空。 當我們輸入使用者名稱和密碼後,點選登入專案目錄下出現名為info.txt的文件,開啟它可以看到原先輸入的使用者名稱和密碼。 第二次執行

刪除指定目錄指定字尾檔案

//定時清除計劃任務日誌檔案,避免佔用太大磁碟空間 $folderpath = "/www/server/log";//要操作的目錄 $deltype = array('log'); foreach ($deltype as $file_type) { clearn_

寫個複製指定目錄指定格式檔案指定目錄方法

package com.test1; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class CopyTest {     pr

遍歷指定目錄指定格式的檔案

/* **path為指定的目錄路徑,遍歷該目錄下的檔案,找出指定格式(.mp3)的檔案 **並將檔名分組分別寫入.txt檔案,方便多程序處理 */ #define SINGLENUM 10 int searchdir( char *path ) { unsigned i

Linux指定目錄指定文件類型生成md5文件

shell linux md5 對指定目錄下擴展名為.asset,.manifest,.wem,.bnk的文件計算md5並匯總到指定文件中。md5文件內容格式: 文件名,md5類似:Audio_Knives_Skill_1_43_9E69E797.wem,bc87ec6bce97e93824a0f

Java 獲取指定目錄指定字尾的檔名稱

前面我們學習了File獲取指定路徑下的所有檔案或者資料夾的名稱,還有獲取指定路徑下所有的檔案物件。這篇,我們分別利用這兩個方法來做一個練習題,例如輸出桌面檔案中所有的png檔名稱。最後簡單看看檔案過濾器的使用,也通過解決這個問題。 1. 檔名稱方法 如果你桌面沒有png檔案,你可以換成jpg

c++ 得到指定目錄指定檔名 windows vs2010

c++ 得到指定目錄下指定檔名方法頗多,網上尋找總結有: 1. 主要思路是使用第三方庫 dirent.h 檔案來完成 資料結構: struct dirent { long d_ino; /* inode number 索引節點號

Java IO檔案的處理以及查詢指定檔案的例項

檔案處理 1、 File:檔案和目錄(資料夾)路徑名的抽象變現形式(並不一定真實存在) 2、 構造方法:  a) File (String pathname) 根據一個路徑得到File物件  b) File(String parent, String child)根據一個目錄和一個子檔案/目

【 I/O檔案輸入與輸出(Scanner)& Scanner和io讀寫有何區別?(待填坑)

對檔案進行讀取,僅需要用File物件構造一個Scanner物件Scanner in= new Scanner(Paths.get("myfile.tet"),"UTF-8");如果檔名中含反斜槓符號,需要在每個反斜槓之前加一個額外的反斜槓如:“c:\\mydirectory\

java-IO(File對象-深度遍歷指定目錄的文件夾和文件)

true file turn ren 文件夾 int tsa http absolut 需求:遍歷這個樹狀結構 File(String pathname) ‘\\‘為了轉義‘\‘ // 通過抽象路徑pathname 創建一個新的文件或者目錄 Fil

java基礎IO 復制鍵盤錄入的目錄,復制其中的.java文件到指定目錄,指定目錄中有重,則改名 對加密文件計算字母個數

tac exceptio lean urn ext java基礎 reader ring 完成 package com.swift.jinji; import java.io.BufferedInputStream; import java.io.BufferedOut

IO系列一:輸入輸出的轉換

pst 取出 nal block each bytearray puts write 為什麽 輸入流轉字節數組的原理1、讀取輸入流,每一小段 讀一次,取出 byteArray 。2、將該一小段byteArray寫入到字節輸出流ByteOutStream。直到不能從輸入流再讀

java ->IO_序列化與反序列化

set final found class文件 ati 技術分享 保存到文件 back 序列化對象 序列化流與反序列化流 用於從流中讀取對象的操作流 ObjectInputStream 稱為 反序列化流 用於向流中寫入對象的操作流 ObjectOutputStream

java ->IO_打印

形式 file temp ava println exception string for true 打印流的概述 打印流添加輸出數據的功能,使它們能夠方便地打印各種數據值表示形式. 打印流根據流的分類: 永遠不會拋出IO異常 l 字節打印流 PrintStream l

利用IO一次性讀取檔案中的所有內容,利用IO下載檔案

利用IO流一次性讀取檔案中的所有內容 讀取檔案效率最快的方法就是一次全讀進來,使用readline()之類的方法,可能需要反覆訪問檔案,而且每次readline()都會呼叫編碼轉換,降低了速度,所以,在已知編碼的情況下,按位元組流方式先將檔案都讀入記憶體,再一次性編碼轉換是最快的方式

利用IO實現檔案拷貝

檔案的拷貝,只需將檔案位元組輸入流和輸出流結合起來即可 package com.jianshun; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; impo

【Java筆記】IO檔案複製及異常處理

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Main

147_IO_節點_位元組_檔案讀取_寫出_追加檔案

檔案的讀取 Test01_InputStream.java package _02.io.byteStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNot