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

}

时间: 2024-08-25 21:37:57

Java实现将指定文件夹内的指定类型的文件归类的相关文章

第5个程序,Java 去掉版权信息! 递归扫描文件夹,并且把整个文件夹内以html结尾的文件里的文字替换为自己想要的文字。

这是我的第5个程序 虽然这五个程序都是非常小的程序,但是写完后很开心...满满都是最最最基础的知识点,可是把这些东西组合起来简直日了狗了.竟然可以这样!竟然会那样!一路改错,改到差点怀疑人生.尤其是递归里面的两个嵌套的if 那逻辑!日了整个地球的狗.起先是用&连起来的,卡了半年,胡子都白了...后来发现,原来被别的地方锁死了!!!所以只能if 里面套一个if...看上去并没有什么特别的一个小程序,自己纯原创写的时候,150ms的延迟,1500的暴击,满地图都卡.死了...让我平复一下激动兴奋的心

C#搜索指定文件夹内的符合要求的文件

下面的列子是文件的模糊查找, 具体功能是:选定文件夹,搜索所有文件命中包含“_bui”字样的shp图层(后缀为.shp)并将信息显示在ListView中.实际应用中可随便修改. 这里采用递归方法进行深度搜索,浅层的搜索就不再记录. List<FiledInfo>Listed=new List<FileInfo>();//存储符合要求的文件的FiledInfo string hz="shp"//文件后缀 private int k=0; public List&l

【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作

一.基本目标 使用Java完成如下的操作: 把一个文件夹内的所有文件拷贝的另一的文件夹,例如,在F盘中有a与b两个文件夹: f:/a里面有一堆文件,运行Java程序之后就会全部复制到f:/b,并且完成重命名,在所有文件之前加rename_的前缀,如果里面有文件夹,则文件夹不重命名,里面的文件进行重命名,同样在所有文件之前加rename_的前缀: 二.制作过程 1.首先主函数非常简单,就是调用了上面FileTest类中的copyFolder函数 public class FileCopy { pu

java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

原文:java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 源代码下载地址:http://www.zuidaima.com/share/1550463660264448.htm 今天有个需求,想把某个文件夹下所有后缀名为jsp的更改为ftl,本来想用bat实现对bat的高级语法也不太了解,后来发现还需要递归遍历所有的子文件夹,所以用java实现了一个功能一样的代码,有需要的牛人可以下载修改为自己想要的. 这样可以兼容windows和linux. package com.zuidaima

File类——renameTo()将文件夹内的所有指定类型文件 移动到另一个文件夹内

* 由于   张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程 文件夹下 的视频文件都存放在每个子文件夹中 * 需求:将所有视频文件全部移动到  张孝祥-7K月薪面试题破解之一_交通灯管理系统视频教程文件夹下  原来存放视频的子文件夹删除 public class moveFiles { public static void main(String[] args) { // TODO Auto-generated method stub File f = new File("D:\\Bai

java删除指定文件夹下的指定文件

import java.io.*; class delclass { public static void main(String[] args) { File file=new File("/Users"); // /Users是路径名 delete(file); } public static void delete(File f) { //数组指向文件夹中的文件和文件夹 File[] fi=f.listFiles(); //遍历文件和文件夹 for(File file:fi) {

IO流的练习3 复制多级文件夹下的指定文件并改名

需求:复制指定目录下的指定文件,并修改后缀名. 指定的文件是:.java文件. 指定的后缀名是:.jad 数据源所在文件夹:C:\Users\Administrator\Desktop\记录 目的地所在文件夹:C:\Users\Administrator\Desktop\新建文件夹\copy 分析: A:封装数据源的目录 B:封装目的地的目录 判断路径下的文件是否是文件夹 是:在目的文件夹下创建该文件, 获取数据源所在文件夹的所有文件的File数组 遍历File数组,得到每个文件的File对象

黑马程序员-JAVA学习之文件夹的复制和遍历所有文件

--------android培训.java培训.期待与你交流!-------- JAVA的文件夹复制由于不知道文件夹里面有多少文件夹,所以使用递归方法遍历里面的所有文件夹和文件,如果是文件,则直接复制到目标文件夹,如果是文件夹,则的目标地方创建对应的同名文件夹,由于文件有各种各样的类型,比如视频,文档,图片等.所以要用到的主要是字节流对象,而不是用字符流对象,在这里用到的几个类分别是 1.File类,文件和目录路径名的抽象表示形式.(即表示既可以是一个文件,也可以是一个文件夹,是一个有分隔符的

用python查找在指定目录下特定文件夹下的指定文件

本代码是在python2.*上边所写. 功能:在指定目录下查找特定文件夹下的特定文件. 实例:查找在packages目录下文件夹名为values下的strings.xml文件 #!/usr/bin/env python import os def walk_dir(path): filter_file_name = 'strings.xml' for root, dirs, files in os.walk(path): for dir_item in dirs: if dir_item ==