zoukankan      html  css  js  c++  java
  • Java实现将指定目录内的指定类型的文件归类

    这两天在学Java IO流,正好让我产生了将自己的电子书归类的打算,说做就做,Why not?看着自己所学所用能解决生活中的实际问题,是不是非常有成就感,那是必须的!

    package DepthSearch;
    
    import java.util.*;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FilenameFilter;
    import java.io.IOException;
    
    public class DepthTraverse {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		File dirFile=new File("G:/eBook/");
    		FilenameFilter filter=new FilenameFilter() {
    			
    			@Override
    			public boolean accept(File dir, String name) {
    				// TODO Auto-generated method stub
    				return name.endsWith(".mobi");
    			}
    		};
    		List<File>list=new ArrayList<File>();
    		try {
    			getFile(dirFile, filter, list);//查找符合条件的文件
    			WriteToFile(list);//将查找到的指定格式的文件放入指定的文件夹中
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    	public static void getFile(File dir,FilenameFilter filter,List<File>list)throws IOException
    	{
    		File[]files=dir.listFiles();
    		for(File file:files)
    		{
    			if(file.isDirectory())//是文件夹则递归查询
    				getFile(file, filter, list);
    			else {
    				if(filter.accept(dir, file.getName()))//是文件则将文件放入list列表中
    					list.add(file);
    			}
    			
    		}
    	}
    	public static void WriteToFile(List<File>list) throws IOException
    	{
    		String dirString="G:/eBooks/mobi";//将查找到的.mobi格式文件存放于此
    		FileInputStream fis=null;
    		FileOutputStream fos=null;
    		int num=0;
    		byte[]bt=new byte[1024];
    		try {
    			for(File file:list)
    			{
    				fis=new FileInputStream(file);//读文件
    				fos=new FileOutputStream(new File(dirString,file.getName()));//写文件
    				System.out.println(file.getAbsolutePath());
    				while((num=fis.read(bt))!=-1)
    				{
    					fos.write(bt, 0, num);
    					fos.flush();
    				}
    			}
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}finally
    		{
    			fis.close();
    			fos.close();
    		}
    	}
    
    }
    


  • 相关阅读:
    python3 基本使用多线程
    img前置显示屏装load图片
    leetcode
    亲串 (hdu 2203 KMP)
    基于VC面部识别软件(识别出人脸特征)
    IT该忍者神龟Oracle 树操作(select…start with…connect by…prior)
    It&#39;s about trust
    hdu 2128 Frog(简单DP)
    第四十天 阿乐在其中—Android小游戏的飞机(四)加入敌人
    Mac OS X通过结合80port
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5241188.html
Copyright © 2011-2022 走看看