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


  • 相关阅读:
    人工智能发展与模型定制化趋势
    Merry Christmas-集成华为HMS ML Kit手部关键点识别来接住圣诞老人的礼物吧!
    快速构建ML Kit自定义模型,实现特定领域图像/文本分类
    华为consumeOwnedPurchase消耗接口返回-1错误码
    超简单集成华为恶意URL检测,保障用户访问安全
    深入解析 C# 的 String.Create 方法
    .NET 内存泄漏的争议
    Centos相关介绍 (连接别人)
    阿里云 Nginx.conf文件配置详解
    阿里云使用Nginx部署vue项目
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5241188.html
Copyright © 2011-2022 走看看