查找同后缀文件并打印文件名到文本

来源:互联网 发布:网站域名备案代办 编辑:程序博客网 时间:2024/04/30 00:39

找出你的E盘里的所有.avi文件,并将这些文件的文件名打印到一个文本文件里
* 整体思路
* 封装两个方法——文件过滤器和输出流
* 过滤器 ——判断是文件 ——以.avi结尾?
* 判断是文件夹——遍历文件夹,递归调用自身

package com.cskaoyan.Day16_HomeWork;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/** * @author JokerHu * */public class Java_4{    public static void main(String[] args)    {        File file = new File("E:");        File file2 = new File("E://1.txt");        findAviFiles(file, file2);    }    /**     * 接收查找好的文件File并将其名字输出打印到E://1.txt     *      * @param file     * @param file2     */    public static void output(File file, File file2)    {        // 声明文件输出流        FileOutputStream fos = null;        try        {            // 构造一个向指定 File表示的文件写入数据,true为追加写入,默认false为覆盖            fos = new FileOutputStream(file2, true);            String data = file.getAbsolutePath() + "\r\n";            // 用byte数组接收文件名            byte[] bs = data.getBytes();            // 输出到文本            fos.write(bs);            System.out.println("已写入" + file.getAbsolutePath());        }        catch (FileNotFoundException e)        {            e.printStackTrace();        }        catch (IOException e)        {            e.printStackTrace();        }        finally        {            if (fos != null)            {                try                {                    fos.close();                }                catch (IOException e)                {                    e.printStackTrace();                }            }        }    }    /**     * 文件过滤器     *      * @param file     * @param file2     */    public static void findAviFiles(File file, File file2)    {        if (file.exists())        {            // 是文件则直接输出            if (file.isFile())            {                // 判断文件后缀,Sting类endsWith方法判断字符串是否以.avi结尾                if (file.getName().endsWith(".avi"))                {                    output(file, file2);                }                else                    return;            }            // 是目录,则用File类型数组list接收目录中的文件的抽象路径名            else if (file.isDirectory())            {                File[] listFiles = file.listFiles();                // 此文件夹目录为空 递归出口                if (listFiles == null)                {                    return;                }                // foreach递归遍历                for (File file3 : listFiles)                {                    findAviFiles(file3, file2);                }            }            else                return;        }    }}

控制台输出
控制台输出.png

输出文本
打印文件名.png

0 0
原创粉丝点击