zoukankan      html  css  js  c++  java
  • java.io.File

    package com.File;
    
    import java.io.File;
    import java.io.FilenameFilter;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class FileDemo1 {
        public static void main(String[] args) {
        
        }
        /*
         * 我们想要实现IO操作,就必须知道硬盘上文件的表现形式
         * 而java就提供了一个File类供我们使用
         * 
         * File:文件和目录路径名的抽象表示形式
         * 构造方法:
         *     File(String pathname)
         *     File(String parent,String child)
         *     File(File parent,String child)
         */
        public void test01(){
            //把d:\demo\a.txt封装成一个File对象
            File file=new File("E:\demo\a.txt");
            
            File file2=new File("E:\demo","a.txt");
            
            File file3=new File("E:\demo");
            File file4=new File(file3,"a.txt");
        }
        
        /*
         *public boolean createNewFile() :当且仅当不存在创建
         *public boolean mkdir() 当且仅当不存在创建文件夹 
         *public boolean mkdirs() 创建文件夹,如果父文件夹不存在会自动创建出来
         *
         * 骑白马的不一定是王子,可能是班长
         * 注意:你到底是要创建文件还是文件夹,你最清楚,方法不要调错
         */
        public void test02() throws IOException{
            //我要早e盘目录下创建一个文件夹demo
            File file=new File("e:\demo");
            System.out.println("mkdir:"+file.mkdir());
            
            //我要在e盘目录demo下创建一个文件a.txt
            File file2=new File("e:\demo\a.txt");
            System.out.println("createNewFile:"+file2.createNewFile());
            
            //我要在e盘目录test下创建一个文件b.txt
            //Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
            //注意:想要在某个目录下创建内容,该目录必须首先存在
    //        File file3=new File("e:\test\b.txt");
    //        System.out.println("createNewFile:"+file3.createNewFile());
            
            //我要在e盘目录test下创建一个文件aaa目录
    //        File file4=new File("e:\test\aaa");
    //        System.out.println("mkdir:"+file4.mkdir());
            
    //        File file5=new File("e:\test");
    //        File file6=new File("e:\test\aaa");
    //        System.out.println("mkdir:"+file5.mkdir());
    //        System.out.println("mkdir:"+file6.mkdir());
            
            File file7=new File("e:\aaa\bbb\ccc\ddd");
            System.out.println("mkdirs:"+file7.mkdirs());
            
            File file8=new File("e:\test\ddd\x.txt");
            System.out.println("mkdirs:"+file8.mkdirs());
        }
        /*
         * 删除功能:public boolean delete()
         * 
         * 注意:
         *         A:如果你创建文件或者文件夹忘了写盘符;路径,那么默认在项目路径下
         *        B:java中的删除不走回收站
         *        C:如果要删除一个文件夹,请注意该文件夹内不能包含文件夹或者文本
         */        
        public void test03() throws IOException{
    //        File file=new File("e:\a.txt");
    //        System.out.println("createNewFile:"+file.createNewFile());
            
            //我不小心写成这个样子
            File file=new File("a.txt");
            System.out.println("createNewFile:"+file.createNewFile());
            
            File file2=new File("aaa\bbb\ccc");
            System.out.println("mkdirs:"+file2.mkdirs());
            
            File file3=new File("a.txt");
            System.out.println("delete:"+file3.delete());
            
            File file4=new File("aaa\bbb\ccc");
            System.out.println("delete:"+file4.delete());
            
    //        File file5=new File("aaa");
    //        System.out.println("delete:"+file5.delete());//要删除一个文件夹必须先删除它的子元素
            
            File file6=new File("aaa\bbb");
            File file7=new File("aaa");
            System.out.println("delete:"+file6.delete());
            System.out.println("delete:"+file7.delete());
        }
        /*
         * 
         * 重命名功能:public boolean renameTo(File dest)
         *         如果路径名相同,就是改名字
         *         如果路径名不同,就是改名并且剪切
         * 
         * 路径以盘符开始: 绝对路径: c:\a.txt
         * 路径不易盘符开始: 相对路径  a.txt
         */
        public void test04(){
    //        File file=new File("林青霞.jpg");
    //        if(!file.exists()){
    //            file.createNewFile();
    //        }
            //需求,我要修改这个文件的名称为东方不败.jpg
            
    //        File newFile=new File("东方不败.jpg");
    //        System.out.println("renameTo:"+file.renameTo(newFile));
            File file2=new File("东方不败.jpg");
            File newFile2=new File("e:\林青霞.jpg");
            System.out.println("renameTo:"+file2.renameTo(newFile2));
        }
        /*
         * 判断功能:
         *     public boolean isDirectory()
         *     public boolean isFile()
         *     public boolean exists()
         *     public boolean canRead()
         *     public boolean canWrite()
         *     public boolean isHidden()
         * 
         */
        public void test05(){
            File file=new File("a.txt");
            
            System.out.println("isDirectory:"+file.isDirectory());
            System.out.println("isFile:"+file.isFile());
            System.out.println("exists:"+file.exists());
            System.out.println("canRead:"+file.canRead());
            System.out.println("canWrite:"+file.canWrite());
            System.out.println("isHidden:"+file.isHidden());
        }
        /*
         * 获取功能:
         * public String getAbsolutePath() 获取绝对路径
         * public String getPath() 获取相对路径
         * public String getName() 获取名称
         * public long length() 获取长度,字节数
         * public long lastModified() 获取最后一次修改的时间,毫秒值
         * 
         */
        public void test06(){
    //        File file=new File("demo");
    //        file.mkdirs();
    //        File file1=new File("demo\text.txt");
    //        file1.createNewFile();
            
            File file=new File("demo\text.txt");
            System.out.println("getAbsolutePath:"+file.getAbsolutePath());
            System.out.println("getPath:"+file.getPath());
            System.out.println("getName:"+file.getName());
            System.out.println("length:"+file.length());
            System.out.println("lastModified:"+file.lastModified());
            
            //
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println(sdf.format(new Date(file.lastModified())));
        }
        /*
         * 获取功能:
         *     public String[] list():获取指定目录下所有文件或者文件夹的名称数组
         *     public File[] listFiles() 获取指定目录下所有文件或者目录的File数组
         */
        public void test07(){
            File file=new File("e:\");
            
            String[] strArray=file.list();
            for(String s:strArray){
                System.out.println(s);
            }
            System.out.println("----------------");
            File[] fileArray=file.listFiles();
            for(File f:fileArray){
                System.out.println(f.getName());
            }
        }
        /*
         * 使用文件名称过滤器,类似于treeSet中使用的比较器
         * 
         * 判断在E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
         * 
         * 思路:
         *     先获取所有的,再判断满足条件就输出
         *     获取的时候就已经满足条件了,然后就输出即可
         * 
         * 要想实现这个效果,就必须学习一个接口:FilenameFilter 文件名称过滤器
         * public String[] list(FilenameFilter filter)
         * public File[] listFiles(FilenameFilter filter)
         */
        public void test08(){
            File file=new File("e:\");
            
            //获取该目录下所有文件或者文件夹的String数组
            String[] strArray=file.list(new FilenameFilter() {
                
                @Override
                public boolean accept(File dir, String name) {
    //                System.out.println(dir+"--------"+name);
    //                File file=new File(dir,name);
    //                System.out.println(file);
    //                boolean flag=file.isFile();
    //                boolean flag2=name.endsWith(".jpg");
    //                return flag && flag2;
                    return new File(dir,name).isFile() && name.endsWith(".jpg");
                }
            });
            for(String s:strArray){
                System.out.println(s);
            }
        }
        //小测试
        /*
         * 判断在E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
         * 
         */
        public void test09(){
            File file=new File("e:\");
            
            File[] files=file.listFiles();
            for(File f:files){
                if(f.isFile()){
                    if(f.getName().endsWith(".jpg")){
                        System.out.println(f.getName());
                    }
                }
            }
        }
        
    }
  • 相关阅读:
    GithubPlus+PicGo + Typora 一键式图床
    快速掌握Linux这篇文章就够了。
    跨行程序员Java进阶--基础语法
    Prometheus(普罗米修斯)
    【学习记录】Golang
    服务器Docker-Compose 安装 Anaconda
    Kubernetes集群部署
    Jenkins部署
    Harbor部署
    Docker、Docker-Compose的安装以及相关使用
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5572431.html
Copyright © 2011-2022 走看看