IO:文件夹的遍历选择与数组、集合的综合

此题综合

/*
 * 1.此题要求用数组和IO流完成  
【1】要求打印java安装目录下jdk文件夹中(如:C:\Program Files\Java\jdk1.7.0_13),所有的文件名称长度小于等于6的并且扩展名为exe的文件名称(如: javac.exe) 
【2】统计以上文件的个数并创建一个字符串数组,将所有的文件名称保存到数组中。 
【3】将数组中的文件按照自然顺序排序,并打印排序后的结果 
【4】键盘输入一个文件名(如:javac.exe)判断数组中是否存在该文件,如果存在打印该文件在数组中的索引位置,如果不存在则打印数组中不存在该文件。
【5】将数组中所有排好序的文件名通过流写入到c盘根目录下名称为:array.txt的文件中,要求换行写入每个文件名


 */
public class kaoshi01 {
    static int   n=0;
    static int x=0;
    static List<String> list=new ArrayList<String>();
    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        int count=0;
        File fi=new File("C:/Program Files/Java/jdk1.8.0_91");
        bianli(fi);
        System.out.println(list.size());
        String[] s=new String[list.size()];
        Iterator<String> it1=list.iterator();
        System.out.print("数组为:");
        while(it1.hasNext()){

            s[count]=it1.next();

        System.out.print(s[count]+" ");
            count++;

        }
        System.out.println();
        System.out.print("排序后:");
        for(int i=0;i<s.length;i++){
            System.out.print(s[i]+" ");
        }

        System.out.println();
        System.out.println("输入要查找的文件:");
        String cs=sc.next();

        for (int i = 0; i < s.length; i++) {
            if(s[i].equals(cs)){
                System.out.println("索引位置为:");
                System.out.println(i);
            }
            //内容的写入
            FileWriter fw=new FileWriter("f:/array.txt");
            for (int j = 0; j < s.length; j++) {
                fw.write(s[j]);
                fw.flush();
            }

        }
        System.out.println("文件写入成功");
    }
    public static void bianli(File file){
        //递归调用,变量文件夹中的所有内容
        if(file.isDirectory()){
            File[] f1=file.listFiles();
            for (int i = 0; i < f1.length; i++) {
                if(f1[i].isDirectory()){
                    bianli(f1[i]);
                }else {
                    if(f1[i].getName().length()<=10&&f1[i].getName().endsWith(".exe")){
                        System.out.print("文件名称:");
                        System.out.println(f1[i].getName());
                        //把内容全部存进集合,无法直接存到数组
                        list.add(f1[i].getName());
                    }

                }
            }


        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值