IO流 文件File 的listFiles 方法(重要)

package com.yyq;

import java.io.*;

//File 类
/*
 * 用来将文件或者文件夹封装成对象
 * 方便对文件和文件夹的属性信息进行操作
 * File对象可以作为参数传递给流的构造函数
 * 流只能处理数据
 * 
 */
/*
 * File 类的常见方法: 
 * 1.创建
 *         boolean createNewFile()
 *      在指定位置创建文件,如果该文件已经存在,则不创建,返回false
 *      和输出流不一样,输出流对象--创建文件,文件存在会覆盖。
 *      mkdir file.mkdir  创建一级目录  
 *      mkdir file.mkdirs(创建多级目录)既可以创建目录,也可以创建文件
 * 2.删除
 *         delete Boolean类型 删除失败,返回假  deleteonExit() void类型 告诉虚拟机,退出时删除指定文件
 * 3.判断
 *      canExecute 判断能否执行
 *      exists() 判断文件是否存在
 *      
 *      (//在判断文件对象是否是文件或者目录是,必须判断是否存在)
 *      isFile() 判断是否是文件
 *      isDirectory 判断是否是目录
 *      isHidden()
 *      isAbsolute 判断是否为绝对路径
 * 4.获取信息
 *      getName()
 *      getPath()
 *      getParent()  //返回的是绝对路径下的父目录,如果获取的是相对路径,则返回空
 *      如果相对路径中有上一层目录,那么该目录就是返回结果。
 *      getAbsolutePath()
 *      getLastModified();
 *      renameTo 有移动的效果
 */

public class FileDemoTest {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        //consMethod();
        //method_2();
        method_5();
        File dir = new File("E:\eclipse - 副本\IOtest");
        // 实现过滤  ------匿名内部类
        // list 是以accept 为准过滤文件的
        // 文件过滤  ------ 过滤方法
        String[] names = dir.list(new FilenameFilter()
                {
                    public boolean accept(File dir,String name){
                        /*System.out.println(dir+"----"+name);
                        if(name.endsWith(".txt"));
                        return false;*/
                        return name.endsWith(".txt");
                    }
                });
        System.out.println(names.length);
        for(String s :names){
            System.out.println(s);
        }
    }
    //创建File对象  创建File对象的三种方式
    public static void consMethod(){
        // 将a.txt 封装成File对象,可以将已有的和未出现的文件或者文件夹封装成对象
        File f = new File("a.txt");
        // 路径不变,文件可以变化
        File f1 = new File("D:\abc","b.txt");
        File d=  new File("D:"+File.separator+"abc");
        File f3 = new File(d,"c.txt");
        System.out.println(f1);
        System.out.println(d);
        System.out.println(f3);
        
    }
    public static void method_1() throws Exception{
        File f = new File("asssddb.txt");
        // 告诉虚拟机,退出时删除了。。。
        f.deleteOnExit();
        sop("create:"+f.createNewFile());
        sop("delete"+f.delete());
    }
    public static void method_2() throws Exception{
        File f = new File("a.txt");
        sop("create:"+f.canExecute()+f.exists());
        sop(f.getPath());
        // 可以列出盘符:
        File[]arr = File.listRoots();
        for(File r : arr){
            System.out.println(r.getAbsolutePath());
        }
        //调用list 方法的file对象,必须封装了目录,该目录还必须存在。
        // 可以列出文件列表
        File file = new File("c:\Users");
        String []names = file.list();
        for(String s : names){
            System.out.println(s);
        }
    }
    public static void sop(Object obj){
        System.out.println(obj);
    }
    public static void method_3(){
        // 创建文件夹  创建目录
        // mkdir 只能创建一级目录 ,
        File dir = new File("dd\abc\kk");
        dir.mkdirs();
        System.out.println(dir.getAbsolutePath());
        System.out.println(dir.getParentFile());
    }
    public static void method_5(){
        File dir = new File("E:\eclipse - 副本\IOtest");
        File[] files = dir.listFiles();
        for(File f:files){
            System.out.println(f.getName()+"::"+f.length());
        }
    }
}
package com.yyq;

import java.io.*;

//File 类
/*
 * 用来将文件或者文件夹封装成对象
 * 方便对文件和文件夹的属性信息进行操作
 * File对象可以作为参数传递给流的构造函数
 * 流只能处理数据
 * 
 */
/*
 * File 类的常见方法: 
 * 1.创建
 *         boolean createNewFile()
 *      在指定位置创建文件,如果该文件已经存在,则不创建,返回false
 *      和输出流不一样,输出流对象--创建文件,文件存在会覆盖。
 *      mkdir file.mkdir  创建一级目录  
 *      mkdir file.mkdirs(创建多级目录)既可以创建目录,也可以创建文件
 * 2.删除
 *         delete Boolean类型 删除失败,返回假  deleteonExit() void类型 告诉虚拟机,退出时删除指定文件
 * 3.判断
 *      canExecute 判断能否执行
 *      exists() 判断文件是否存在
 *      
 *      (//在判断文件对象是否是文件或者目录是,必须判断是否存在)
 *      isFile() 判断是否是文件
 *      isDirectory 判断是否是目录
 *      isHidden()
 *      isAbsolute 判断是否为绝对路径
 * 4.获取信息
 *      getName()
 *      getPath()
 *      getParent()  //返回的是绝对路径下的父目录,如果获取的是相对路径,则返回空
 *      如果相对路径中有上一层目录,那么该目录就是返回结果。
 *      getAbsolutePath()
 *      getLastModified();
 *      renameTo 有移动的效果
 */

public class FileDemoTest {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        //consMethod();
        //method_2();
        method_5();
        File dir = new File("E:\eclipse - 副本\IOtest");
        // 实现过滤  ------匿名内部类
        // list 是以accept 为准过滤文件的
        // 文件过滤  ------ 过滤方法
        String[] names = dir.list(new FilenameFilter()
                {
                    public boolean accept(File dir,String name){
                        /*System.out.println(dir+"----"+name);
                        if(name.endsWith(".txt"));
                        return false;*/
                        return name.endsWith(".txt");
                    }
                });
        System.out.println(names.length);
        for(String s :names){
            System.out.println(s);
        }
    }
    //创建File对象  创建File对象的三种方式
    public static void consMethod(){
        // 将a.txt 封装成File对象,可以将已有的和未出现的文件或者文件夹封装成对象
        File f = new File("a.txt");
        // 路径不变,文件可以变化
        File f1 = new File("D:\abc","b.txt");
        File d=  new File("D:"+File.separator+"abc");
        File f3 = new File(d,"c.txt");
        System.out.println(f1);
        System.out.println(d);
        System.out.println(f3);
        
    }
    public static void method_1() throws Exception{
        File f = new File("asssddb.txt");
        // 告诉虚拟机,退出时删除了。。。
        f.deleteOnExit();
        sop("create:"+f.createNewFile());
        sop("delete"+f.delete());
    }
    public static void method_2() throws Exception{
        File f = new File("a.txt");
        sop("create:"+f.canExecute()+f.exists());
        sop(f.getPath());
        // 可以列出盘符:
        File[]arr = File.listRoots();
        for(File r : arr){
            System.out.println(r.getAbsolutePath());
        }
        //调用list 方法的file对象,必须封装了目录,该目录还必须存在。
        // 可以列出文件列表
        File file = new File("c:\Users");
        String []names = file.list();
        for(String s : names){
            System.out.println(s);
        }
    }
    public static void sop(Object obj){
        System.out.println(obj);
    }
    public static void method_3(){
        // 创建文件夹  创建目录
        // mkdir 只能创建一级目录 ,
        File dir = new File("dd\abc\kk");
        dir.mkdirs();
        System.out.println(dir.getAbsolutePath());
        System.out.println(dir.getParentFile());
    }
    public static void method_5(){
        File dir = new File("E:\eclipse - 副本\IOtest");
        File[] files = dir.listFiles();
        for(File f:files){
            System.out.println(f.getName()+"::"+f.length());
        }
    }
}
原文地址:https://www.cnblogs.com/yangyongqian/p/5153864.html