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(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2019-09-02 做准备的笔记