• 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());
            }
        }
    }
  • 相关阅读:
    1691: [Usaco2007 Dec]挑剔的美食家
    poj2892 Tunnel Warfare
    P3369 【模板】普通平衡树 Treap
    Splay的用法
    P3165 [CQOI2014]排序机械臂
    P2286 [HNOI2004]宠物收养场
    P3391 【模板】文艺平衡树(Splay)新板子
    3224: Tyvj 1728 普通平衡树(新板子)
    P2515 [HAOI2010]软件安装
    CF 219 D:Choosing Capital for Treeland(树形dp)
  • 原文地址:https://www.cnblogs.com/yangyongqian/p/5153864.html
Copyright © 2020-2023  润新知