File过滤器的应用

package test;


import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.zip.InflaterInputStream;

import javax.annotation.processing.FilerException;

import privateclass.Filterby_Name;
import privateclass.Filterby_hidden;
import privateclass.Filterby_java;
import privateclass.MyBufferedReader;

public class Main {

	private static final String space_operator = " ";
	private static final double pi = Math.PI;
	private static final String LINE_SEPARATOR = System.getProperty("line.separator");
	public static void main(String[] args) throws Exception {

		/*
		 * 这个代码神奇的创建了文件夹
		 * 因此我们在用文件的时候不要只看它的名字
		 * 需要看你到底创建了什么
		File file = new File("a.txt");
		boolean b = file.mkdir();
		System.out.println("b=" + b);
		*/
		File file = new File("d:\");
		//创建文件
		/*
		boolean b = file.createNewFile();
		System.out.println("b=" + b);
		*/
		//判断文件是不是文件夹
		file.isDirectory();
		//判断文件是不是个文件
		file.isFile();
		//判断文件是不是隐藏
		file.isHidden();
		
		//创建一个过滤器直接过滤掉不是java的文件
		/*
		String names[] = file.list(new Filterby_java());
		for(String name: names)
		{
			System.out.println(name);
		}
		*/
		
		
		//过滤器直接传参过滤出来想要的文件
		//FileFilter_byname(".txt");
		
		
		//过滤出来隐藏的文件
		//filefilter_byhidden();
		
		//全部的空间
		System.out.println(file.getTotalSpace());
		//可用的空间
		System.out.println(file.getUsableSpace());
		//剩下多少空间可用
		System.out.println(file.getFreeSpace());
		
		//重新命名文件并且可以改变文件的地址
		File file2 = new File("D:\zhizhi.txt");
		File file3 = new File("E:\dudu.txt");
		file2.renameTo(file3);
		//调用文件的删除功能如果文件是一个文件夹并且里面有东西就删除不了
		file3.delete();
		
		File file4 = new File("D:\c\d\e\f\t\y\u\i");
		file4.mkdirs();
		//我们会发现这个删除删除成功了,这是为什么?
		//因为之删除了i文件夹其他都没有删除哦,记住我们删除的是绝对路径下的文件
		file4.delete();
	}
	public static void filefilter_byhidden() {
		File file = new File("d:\");
		File[] names = file.listFiles(new Filterby_hidden());
		for(File name: names)
		{
			System.out.println(name);
		}
	}
	public static void FileFilter_byname(String suffix) {
		
		File file = new File("d:\");
		String[] names = file.list(new Filterby_Name(suffix));
		for(String name: names)
		{
			System.out.println(name);
		}
		
	}
}




package privateclass;

import java.io.File;
import java.io.FileFilter;

public class Filterby_hidden implements FileFilter {

	@Override
	public boolean accept(File pathname) {
		
		return pathname.isHidden();
	}


}




package privateclass;

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

public class Filterby_Name implements FilenameFilter {

	
	private String suffix;
	

	public Filterby_Name(String suffix) {
		super();
		this.suffix = suffix;
	}
	
	@Override
	public boolean accept(File dir, String name) {
		
		return name.endsWith(suffix);
	}
}





package privateclass;

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

public class Filterby_java implements FilenameFilter {

	@Override
	public boolean accept(File dir, String name) {
		// TODO Auto-generated method stub
		return name.endsWith(".java");
	}


}

  

原文地址:https://www.cnblogs.com/WINDZLY/p/11815369.html