Java中File类遍历所有文件or文件夹的方法- String[] list​()和  File[] listFiles​() 用法示例代码

    String[] list​() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
    File[] listFiles​() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。 

        list和listFile方法遍历的是构造方法中给出的目录
        如果构造方法中给出的路径目录不存在,会抛出空指针异常
        如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
        遍历能获取隐藏的文件和文件夹

package com.baidu;

import java.io.File;

/*
    String[] list​() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
    File[] listFiles​() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
    注意:
        list和listFile方法遍历的是构造方法中给出的目录
        如果构造方法中给出的路径目录不存在,会抛出空指针异常
        如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
        遍历能获取隐藏的文件和文件夹

 */
public class ListDirectory {
    public static void main(String[] args) {
        //show01();
        //show02();
        show03();
    }

    /*
        String[] list​() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
        遍历构造方法中给出的目录,会获取目录所有文件/文件夹的名称,把获取到的多个名称存储到一个String类型的数组中
     */
    private static void show01() {
        File file = new File("F:\\develop");
        String[] arr = file.list();
        for (String fileName : arr) {
            System.out.println("遍历目录下的所有文件或者文件夹的名称:"+fileName);
        }



    }
    /*
        空指针异常示例
     */
    private static void show02(){
        File file = new File("F:\\develop\\1.txt");
        String[] list = file.list();
        for (String fileName : list) {
            System.out.println(fileName);
        }

    }
    /*
    空指针异常代码,为什么会产生空指针?是因为list方法访问的必须是目录,不能是文件
        Exception in thread "main" java.lang.NullPointerException
	at com.baidu.ListDirectory.show02(ListDirectory.java:40)
	at com.baidu.ListDirectory.main(ListDirectory.java:17)

     */
    /*
    list方法源码:
        public String[] list() {
        SecurityManager security = System.getSecurityManager();
        if (security != null) {
            security.checkRead(path);
        }
        if (isInvalid()) {
            return null;
        }
        return fs.list(this);
    }

     */



    /*
        遍历目录不存在也会打印空指针异常

     */



    /*
        File[] listFiles​() 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
        遍历构造方法中给出的目录,会获取目录中所有的文件/文件夹,把文件/文件夹封装为File对象,多个
        对象存储到File数组中
     */
    /*
       show03方法中打印fileName相当于调用fileName.toString方法
       toString源码:
        public String toString() {
        return getPath();
    }
     */
    private   static void show03(){
        File file = new File("F:\\develop");
        File[] files = file.listFiles();
        for (File fileName : files) {
            System.out.println(fileName);
        }

    }
    /*
    listFiles()方法源码:
        public File[] listFiles() {
        String[] ss = list();
        if (ss == null) return null;
        int n = ss.length;
        File[] fs = new File[n];
        for (int i = 0; i < n; i++) {
            fs[i] = new File(ss[i], this);
        }
        return fs;
    }
     */


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值