• File类


    环境变量和属性

    环境变量相关

    1.得到某个/所有环境变量的值

    2.设置环境变量的值

    3.列出全部系统属性名

    import java.util.Enumeration;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Properties;
    
    public class Main {
    
        public static void main(String[] args) throws Exception {
            //环境变量 jdk1.7
            Map<String, String> map = System.getenv();
            for (Map.Entry<String, String> entry : map.entrySet()) {
                System.out.println(entry.getKey() + ":" + entry.getValue());
            }
            System.out.println("JAVA_HOME的环境变量:" + System.getenv("JAVA_HOME"));
    
            //属性
            Properties properties = System.getProperties();
            Iterator pi = properties.entrySet().iterator();
            while (pi.hasNext()) {
                Map.Entry<Object, Object> obj = (Map.Entry<Object, Object>) pi.next();
                System.out.println(obj.getKey() + ":" + obj.getValue());
            }
            System.out.println("JAVA的版本:" + System.getProperty("java.version"));
            setProperty("java.coffee", "i hate coffee");
            System.out.println("java.coffee的属性:" + System.getProperty("java.coffee"));
            //所有属性名
            Properties names = System.getProperties();
            Enumeration<String> enumnames = (Enumeration<String>) names.propertyNames();
            while (enumnames.hasMoreElements()) {
                System.out.println(enumnames.nextElement());
            }
        }
    
        private static void setProperty(String key, String value) {
            Properties properties = System.getProperties();
            properties.setProperty(key, value);
        }
    }
    View Code

    属性相关

    1.读取属性文件.properties

    2.设置属性文件值

    3.写入属性文件数据

            Properties properties = new Properties();
            File file = new File("D://jdbc.properties");
            properties.load(new FileInputStream(file));
            // 文件内容放入hashmap
            System.out.println(properties.getProperty("jdbc.username"));
            //内存中
            properties.setProperty("jdbc.driverClassName", "com.mysql.jdbc.Driver");
            //文件定位 目录可变 相对路径 根目录开始的
            File outputfile = new File("D://out.properties");
            //读取 新建properties文件 写入数据
            properties.store(new FileOutputStream(outputfile), "驱动名");
    View Code

    属性文件为XML文件

            Properties properties = new Properties();
            properties.loadFromXML(new FileInputStream(new File("D://web.xml")));
            // String s=properties.getProperty("admin_username");
            // System.out.println(s);
            properties.setProperty("key", "value");
            File out = new File("D://new.xml");
            properties.storeToXML(new FileOutputStream(out), "备注");
    View Code

     文件 基础操作

    1.得到文件名,绝对/相对路径,系统分隔符等文件信息

    2.创建/删除单一指定文件

    import java.io.File;
    import java.io.IOException;
    
    public class Main {
    
        public static void main(String[] args) throws Exception {
            File f = new File("D://demo.txt");
            System.out.println("文件名:" + f.getName());
            System.out.println("相对路径:" + f.getPath());
            System.out.println("绝对路径:" + f.getAbsolutePath());
            System.out.println("是否存在:" + f.exists());
            System.out.println("是否文件:" + f.isFile());
            System.out.println("当前系统的文件分隔符:  " + File.separator);
            System.out.println("系统属性中得到系统文件分隔符: " + System.getProperty("file.separator"));
            createFile("demo.txt");
            deleteFile("demo.txt");
        }
    
        private static void createFile(String dir) throws IOException {
            File f = new File(dir);
            if (f.exists()) {
                System.out.println("文件已经存在");
            } else {
                // createNewFile创建文件
                if (f.createNewFile()) {
                    System.out.println("创建成功");
                } else {
                    System.out.println("创建不成功");
                }
            }
        }
    
        private static void deleteFile(String dir) throws IOException {
            File f = new File(dir);
            if (f.exists()) {
                ////delete删除文件
                if (f.delete()) {
                    System.out.println("删除成功");
                } else {
                    System.out.println("删除不成功");
                }
            } else {
                System.out.println("文件不存在");
            }
        }
    }
    View Code

    目录 基础操作

    1.遍历多级目录

    2.创建/删除单一目录

    3.创建/删除目录树

    4.创建文件同时创建目录

    5.删除目录和文件

    import java.io.File;
    import java.io.IOException;
    
    public class Main {
    
        public static void main(String[] args) throws Exception {
            File dir = new File("D:\IdeaWorkspace");
            if (dir.isDirectory()) {
                System.out.println(dir + "是个目录");
                //目录下文件列表 不会递归下一层目录
                for (String s : dir.list()) {
                    System.out.println(s);
                }
            } else {
                System.out.println("目录不存在");
            }
            createSimpleDir("demodir");
            deleteSimpleDir("demodir");
            createMultiDir("test1/test2/test3");
            deleteMultiDir("D://test1");
            createDirFile("app1/app2/app3.txt");
        }
    
        //添加单一目录
        private static void createSimpleDir(String path) {
            File dir = new File(path);
            if (dir.exists()) {
                return;
            } else {
                if (dir.mkdir()) {
                    System.out.println("目录创建成功");
                } else {
                    System.out.println("目录创建失败");
                }
            }
        }
    
        //删除单一目录
        private static void deleteSimpleDir(String path) {
            File dir = new File(path);
            if (dir.exists()) {
                if (dir.delete()) {
                    System.out.println("目录删除成功");
                } else {
                    System.out.println("目录删除失败");
                }
            } else {
                return;
            }
        }
    
        //添加多个目录
        private static void createMultiDir(String path) {
            File dir = new File(path);
            if (dir.exists()) {
                return;
            } else {
                if (dir.mkdirs()) {
                    System.out.println("目录创建成功");
                } else {
                    System.out.println("目录创建失败");
                }
            }
        }
    
        //删除多个目录
        private static void deleteMultiDir(String path) {
            File dir = new File(path);
            if (dir.exists()) {
                if (delete(dir)) {
                    System.out.println("目录删除成功");
                } else {
                    System.out.println("目录删除失败");
                }
            } else {
                return;
            }
        }
    
        //删除文件和目录
        private static boolean delete(File dir) {
            boolean flag = true;
            if (dir.isDirectory()) {
                //目录递归
                for (File f : dir.listFiles()) {
                    //递归删除
                    flag = flag && delete(f);
                }
            }
            //文件直接删除
            return flag && dir.delete();
        }
    
        //添加目录并文件
        private static void createDirFile(String path) throws IOException {
            File file = new File(path);
            if (file.exists()) {
                return;
            }
            File dir = file.getParentFile();
            if (!dir.exists()) {
                dir.mkdirs();
            }
            file.createNewFile();
        }
    }
    View Code

     遍历指定后缀名文件

    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            Scanner sc = new Scanner(System.in);
            System.out.println("输入目录:");
            String path = sc.nextLine();
            System.out.println("输入后缀名");
            final String suffix = sc.nextLine();
            File file = new File(path);
            // 匿名内部类 filenamefilter是接口
            String[] array = file.list(new FilenameFilter() {
                // 目录dir 文件名name
                @Override
                public boolean accept(File dir, String name) {
                    if (name.endsWith(suffix)) {
                        // true代表之间存入String[]
                        return true;
                    }
                    return false;
                }
            });
            for (String s : array) {
                System.out.println(s);
            }
        }
    }
    View Code
  • 相关阅读:
    Educational Codeforces Round 11 复盘
    Tarjan 杂题选讲
    2021-10-31 两校联考 题解
    COCI19-20#6 Trener & COI2020 题解
    CSP 2021 游记
    Educational Codeforces Round 9 题解
    Educational Codeforces Round 8 部分题解
    Educational Codeforces Round 7 部分题解
    CSP2021自闭记
    二项式系数相关恒等式的记录与复习
  • 原文地址:https://www.cnblogs.com/manusas/p/6702583.html
Copyright © 2020-2023  润新知