Java实现将指定目录内的指定类型的文件归类
2016-03-04 10:34
609 查看
这两天在学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(); } } }
相关文章推荐
- [Java] 作业1答疑
- spring mvc拦截器和<mvc:annotation-driven />的详解
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- Java基础之集合
- 【leetcode】【100】Same Tree
- Java中的File类
- 《THINKING IN JAVA》随笔
- Ehcache 整合Spring 使用页面、对象缓存(转)
- Java struts2和struts1对比
- java操作html字符串
- struts标签<logic:iterate>的用法
- 奇怪的分式Java
- 8张图带你理解Java
- eclipse远程调试weblogic
- Java Thread模拟哲学家进餐
- 冒泡排序
- 【leetcode】【94】Binary Tree Inorder Traversal
- java.lang.NoSuchFieldError: TRACE
- 在eclipse上安装 Marketplace Client
- eclipse中插件的安装