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();
    		}
    	}
    
    }
    


  • 相关阅读:
    2018 ACM-ICPC 中国大学生程序设计竞赛暨丝绸之路程序设计竞赛
    牛客小白月赛2
    求n个数中前k个数,按之前的顺序输出(HK IPM)
    js_复选框单选与复选
    js_判断字符串中出现最多的字符的和次数
    js_倒计时
    海通证券面试
    上海利莫面试
    中焯信息面试
    富途面试
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5241188.html
Copyright © 2011-2022 走看看