扫描指定文件夹下面所有以.txt结尾的文件,并将其绝对路径输出

主要思路:

                 首先,找到指定路径下的所有文件;

                 然后,判断这些文件是否以.txt作为后缀,如果是,则为要找的文件,此时输出其绝对路径,否则,继续查找,直到遍历完所有文件为止。

package InterView;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SearchFile {
	public void find(String path, String reg) {
		Pattern pat = Pattern.compile(reg);
		File file = new File(path);
		File[] arr = file.listFiles();
		for (int i = 0; i < arr.length; i++) {
			if (arr[i].isDirectory()) {// 如果是文件夹
				find(arr[i].getAbsolutePath(), reg);
			}
			Matcher mat = pat.matcher(arr[i].getAbsolutePath());
			// 根据正则表达式,寻找匹配的文件
			if (mat.matches()) {
				System.out.println(arr[i].getAbsolutePath());
			}
		}
	}

	public static List getFileList(File file) {

		List result = new ArrayList();

		if (!file.isDirectory()) {
			System.out.println(file.getAbsolutePath());
			result.add(file.getAbsolutePath());
		} else {
			File[] directoryList = file.listFiles(new FileFilter() {
				public boolean accept(File file) {
					if (file.isFile() && file.getName().indexOf("txt") > -1) {
						return true;
					} else {
						return false;
					}
				}
			});
			for (int i = 0; i < directoryList.length; i++) {
				result.add(directoryList[i].getPath());
			}
		}

		return result;
	}

	public static void main(String[] args) throws IOException {
		
		System.out.println("请输入要扫描的文件夹:");
		Scanner scanner=new Scanner(System.in);                   
		String FILE_IN=scanner.next();
		File f = new File(FILE_IN);
		List list = new ArrayList();
		list = getFileList(f);

		System.out.println(list.size());

		for (String l : list) {
			System.out.println(l);
			BufferedReader br = new BufferedReader(new FileReader(new File(l)));
			String line = br.readLine();
			byte[]b=line.getBytes("iso-8859-1");
			String content=new String(b, "GBK");
			System.out.println(content);

		}
	}
}

 

你可能感兴趣的:(面试题,数据结构)