首页 > 代码库 > 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(); } } }
Java实现将指定文件夹内的指定类型的文件归类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。