JavaIO流筛选文件并输出到指定文件夹下

	今天复习了File类中的获取目录中包含子目录在内的所有文件名称 
	public static void getFile(File file)
	{
		File[] files = file.listFiles();
		//获得文件数组 
		for(File file1:files){//遍历文件数组
			if(file1.isDirectory())//首先判断是否是文件夹,假如是,进入递归调用
			{
				getFile(file1);
			}else{
				System.out.println(file1);//否则输出,这里自动调用File.toString(),方法 已被重写
			}
		}	
				System.out.println(file);

	}
	public static void delete(File file)
	{
		File[] files = file.listFiles();
		
		for(File file1:files){
			if(file1.isDirectory())
			{
				delete(file1);
			}else{
				System.out.println(file1.getName()+"已被删除");
				file1.delete();	
			}
		}
			if(file.exists()){//删除调用目录
				file.delete();
				System.out.println(file.getName()+"文件夹已被删除");
			}
	}

结合IO流,进行文件的筛选和输出

	public static void getDocFile(File file ,List<File> list)//首先进行文件的筛选
	{
		File[] files = file.listFiles();
		
		for(File file1:files)
		{
			if(file1.isDirectory()){
				getDocFile(file1, list);
			}else{
				if(file1.getName().endsWith(".doc")){
					list.add(file1);//将符合筛选条件的文件类型假如到文件数组中
				}
			}
		}
	}
	public static void outDocFile(List<File> list,String path) throws IOException{
		BufferedInputStream buin = null ;
		BufferedOutputStream buout= null;
		int i = 0;
		for(File file:list)
		{
			i++;
			try{
				buin = new BufferedInputStream(new  FileInputStream(file));
				buout= new BufferedOutputStream(new FileOutputStream(new File(path+i+".doc")));
				byte[] bit = new byte[1024];
				int len = 0;
				while((len = buin.read(bit))!=-1){
					buout.write(bit,0,len);
				}
			}catch(IOException e){
				System.out.println("失败");
			}finally{
				if(buin != null){
					try {
						buin.close();
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}finally{
						buin = null;
					}
					try {
						buout.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}finally{
						buout = null;
					}
				}
			}
		}
	}

通过修改筛选条件的后缀名可以该表要获得的文件类型

猜你喜欢

转载自blog.csdn.net/weixin_38170523/article/details/83720602