java读取配置文本文件

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;

import org.springframework.util.StringUtils;

public class ProperityUtils {

    public static String loadProperties2System(String location) throws IOException {
        String configLocation = location;
        File cnf;
        if (!StringUtils.hasLength(location)) {
            configLocation = "./config";
            cnf = new File(configLocation);
            if (!cnf.exists() || !cnf.isDirectory()) {
                configLocation = "../config";
                cnf = new File(configLocation);
            }
        } else {
            cnf = new File(location);
        }

        if (cnf.exists() && cnf.isDirectory()) {
            File[] files = cnf.listFiles();
            if (files != null) {
                File[] pfiles = files;
                int length = files.length;

                for (int i = 0; i < length; ++i) {
                    File file = pfiles[i];
                    if (file.isFile() && file.getName().endsWith(".properties")) {
                        Properties ppt = new Properties();
                        FileInputStream fi = new FileInputStream(file);
                        Throwable e = null;

                        try {
                            ppt.load(fi);
                            Iterator<String> iterator = ppt.stringPropertyNames().iterator();

                            while (iterator.hasNext()) {
                                String key = iterator.next();
                                System.setProperty(key, ppt.getProperty(key));
                                // if (!System.getProperties().containsKey(key)) {
                                // }
                            }
                        } catch (Throwable e2) {
                            e = e2;
                            throw e2;
                        } finally {
                            if (fi != null) {
                                if (e != null) {
                                    try {
                                        fi.close();
                                    } catch (Throwable e3) {
                                        e.addSuppressed(e3);
                                    }
                                } else {
                                    fi.close();
                                }
                            }

                        }
                    }
                }
            }
        } else {
            System.out.println("" + configLocation + "” is not a directory. Can not load any properties file.");
        }

        return configLocation;
    }

    public static String loadProperty2System(String location) throws IOException {
        File file = new File(location);
        if (file.isFile() && file.getName().endsWith(".properties")) {
            Properties ppt = new Properties();
            FileInputStream fi = new FileInputStream(file);
            Throwable e = null;

            try {
                ppt.load(fi);
                Iterator<String> iterator = (Iterator<String>) ppt.stringPropertyNames().iterator();

                while (iterator.hasNext()) {
                    String key = iterator.next();
                    System.setProperty(key, ppt.getProperty(key));
                    // if (!System.getProperties().containsKey(key)) {
                    // }
                }
            } catch (Throwable e2) {
                e = e2;
                throw e2;
            } finally {
                if (fi != null) {
                    if (e != null) {
                        try {
                            fi.close();
                        } catch (Throwable e3) {
                            e.addSuppressed(e3);
                        }
                    } else {
                        fi.close();
                    }
                }

            }
        } else {
            System.out.println("" + location + "”,Can not load any property file.");
        }

        return file.getAbsolutePath();
    }

}
原文地址:https://www.cnblogs.com/liangblog/p/13600240.html