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

 

posted @ 2017-04-13 10:06  曼联  阅读(147)  评论(0编辑  收藏  举报