ファイルのフィルタ


対応する接尾辞に合致するファイルをフィルタリングし、条件に合致するファイルは彼の絶対パスを格納し、最後に...を返す. 
歌プレーヤーを書くときに音楽ファイルを追加することができます.
import java.io.File;
import java.util.ArrayList;

public class ErgodicFile
{
	ArrayList<String> filePaths =  null;
	File file;
	public ErgodicFile(File file)
	{
		this.file = file;
		filePaths = new ArrayList<String>();
	}
	/**
	 *  
	 * @param file
	 */
	public void ergodic(File file)
	{
		if(file.exists())
		{
			if(file.isDirectory())
			{
				File[] files = file.listFiles();
				if(files!=null)
				{
					for(File f:files)
					{
						ergodic(f);
					}
			
				}
			}
			else if(file.isFile())
			{
				if(filterFile(".txt", file.getName()))
				{
					filePaths.add(file.getAbsolutePath());
				}
			}
			
		}
		else
		{
			return;
		}
	}
	
	/**
	 * @param suffix  
	 * @param fileName  
	 * @return  suffix  true  false
	 */
	public boolean filterFile(String suffix,String fileName)
	{
		if(fileName.endsWith(suffix))
		{
			return true;
		}
		else
		{
			return false;
		}
	}

	public static void main(String[] args)
	{
		//    E:\123
		ErgodicFile ef = new ErgodicFile(new File("E:\\123"));
		ef.ergodic(ef.file);
		for(String filePath:ef.filePaths)
		{
			System.out.println(filePath);
		}
		System.out.println("~~~~~~~~"+ef.filePaths.size());
	}

}

私のこのプログラムの中でファイルのパスはすべてメモリの中に存在して、もし遍歴するファイルはかなり大きいならば、とても大きいメモリを占有することができます.....だから上のプログラムは参考にして、実は書類に書くこともできます......