IO流--File

(0)获取文件的两种方式

使用File.separator可以实现跨平台的分割符

    //方法一
    File file1=new File("demo1.txt");
    file1.createNewFile();
    //方法二
    File file2=new File("C:"+File.separator,"text.txt");
    file2.createNewFile();
    //方法三
    File file3=new File("D:"+File.separator,"text2.txt");
    file3.createNewFile();
    System.out.println("file1:"+file1);
    System.out.println("file2:"+file2);
    System.out.println("file3:"+file3);

(1)对文件的创建,删除,判断,获取信息,移动,重命名

        //文件的创建
        File file=new File("demo1.txt");
        //文件的删除(成功返回true失败返回false )
        System.out.println(file.delete());
        //文件在退出的时候删除(主要用于临时文件的删除)
        file.deleteOnExit();
        //判断
        System.out.println(file.exists());//是否存在
        System.out.println(file.isFile());//是否是文件
        System.out.println(file.isDirectory());//是否是文件夹
        System.out.println(file.isHidden());//是否隐藏
        System.out.println(file.isAbsolute());//是否是绝对路径
        //获取
        System.out.println(file.getName());//获取文件名
        System.out.println(file.getParent());//获取绝对路径的父级目录,获取相对路径的上级目录
        System.out.println(file.getPath());//获取封装的路径
        System.out.println(file.getAbsoluteFile());//获取据对路径封装成的文件对象
        System.out.println(file.getAbsolutePath());//获取绝对路径的字符创
        System.out.println(file.lastModified());//获取最后修改时间
        System.out.println(file.length());//获取文件的大小

 (2)文件重命名,移动

    //实现文件改名
    File file1=new File("C:\\demo.txt");
    File file2=new File("C:\\demo2.txt");
    System.out.println("haha   "+file2.renameTo(file1));;
    
    //实现文件的移动
    File file3=new File("C:\\demo.txt");
    File file4=new File("C:\\demo2.txt");
    System.out.println("haha   "+file3.renameTo(file4));;

(3)获取列表(盘符列表,获取指定文件夹的目录,获取指定文件夹目录中符合条件的文件名列表,获取指定文件夹目录中符合条件的文件列表)

//获取根目录盘符列表
    File[] fileLise=File.listRoots();
    for(File file :fileLise)
    {
        System.out.println(file);
    }
    
    //获取指定文件的子文件及以及一级子文件夹]
    //使用list时封装的对象必须是已经存在的文件夹
    File file5=new File("F:\\test");
    file5.mkdir();
    String[] fileNames=file5.list();
    for(String name :fileNames)
    {
        System.out.println(name);
    }
    
    //获取指定目录下符合自定义条件的文件名列表
    File file7=new File("F:\\");
    String[] fileList2=file7.list(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".exe");
        }
    });
    
    for(String name:fileList2)
    {
        System.out.println(name);
    }
    
    ////获取指定目录下符合自定义条件的文件列表
    File[] fileList3=file7.listFiles(new FileFilter() {
        
        @Override
        public boolean accept(File pathname) {
            return pathname.toString().endsWith(".exe");
        }
    });
    System.out.println("****************");
    for(File file:fileList3)
    {
        System.out.println(file.toString());
    }

(4)列出指定文件夹下的所有文件及文件夹(包括子文件里面的内容)【使用递归】

    // 获取指定文件夹下的所有文件(包括子文件夹内部的内容)
    public static void test() {
        File file = new File("F:\\tset");
        getdir(file);
    }

    public static void getdir(File file_s) {
        File[] fileLists = file_s.listFiles();
        for (File file_1 : fileLists) {
            System.out.println(file_1);
            if (file_1.isDirectory()) {
                getdir(file_1);
            }
        }
    }

    public static void main(String[] args) {
        test();
    }

猜你喜欢

转载自www.cnblogs.com/excellencesy/p/9192256.html
今日推荐