首页 > 其他分享 >读取配置文件

读取配置文件

时间:2023-04-25 10:10:05浏览次数:39  
标签:java 读取 配置文件 AppConfig IOException import public String


Class类中的InputStream getResourceAsStream(String name):查找具有给定名称的资源。 用于搜索与给定类相关联的资源的规则由类的定义类加载器实现。 此方法委托给该对象的类加载器。 如果此对象由引导类加载器加载,则该方法委托到ClassLoader.getSystemResourceAsStream(java.lang.String).
读取配置文件代码如下:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
class AppConfig
{
    public void readApp() throws IOException
    {
        Properties p = new Properties();
        InputStream fis = null;
        fis = AppConfig.class.getResourceAsStream("fffonfig.properties");
        if (fis == null)
        {
            System.out.println("读取文件出错!");
            System.exit(0);
        }
        p.load(fis);
        String param1 = p.getProperty("param1");
        String param2 = p.getProperty("param2");
        System.out.println("param1"+param1+"param2"+param2);


    }
}
public class SingleTest {
    public static void main(String[] args) throws IOException
    {
        AppConfig ac = new AppConfig();
        ac.readApp();
    }
}

配置文件(fffonfig.properties)的路径与Java源文件对应的.class的路径应该在同一个包下,运行结果如下:
param11param22
getResourceAsStream读取的文件路径只局限在工程的源文件夹中,包括在工程src根目录下,以及类包里面任何位置,但是如果配置文件路径是在除了源文件夹之外的其他文件夹中时,该方法是用不了的,会引起空指针异常。
使用枚举实现单例模式,单元素的枚举类型已经成为实现Singleton模式的最佳方法。代码如下:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
enum  AppConfig
{

        ac;
        private String paramA;
        private String paramB;
        public void readConfig()
        {
            Properties p =new Properties();
            InputStream is = null;
            is = AppConfig.class.getResourceAsStream("fffonfig.properties");
            try
            {
                p.load(is);
                this.paramA = p.getProperty("param1");
                this.paramB = p.getProperty("param2");

            } catch(IOException ie)
            {
                ie.printStackTrace();
            }finally
            {
                try
                {
                    is.close();
                } catch(IOException ie)
                {
                    ie.printStackTrace();
                }
            }
            System.out.println(paramA+paramB);

        }
}
public class SingleTest {
    public static void main(String[] args) throws IOException
    {
        AppConfig.ac.readConfig();
    }
}

运行结果:12
简单工厂的定义:提供一个创建对象实例的功能,而无需关心其具体实现。被创建实例的类型可以是接口,抽象类,也可以是具体的类。


标签:java,读取,配置文件,AppConfig,IOException,import,public,String
From: https://blog.51cto.com/u_16087831/6223410

相关文章

  • 读取指定路径 .txt 十六进制文件
    filepath='C:\Desktop\2023-04-11-10-21-42_1.txt';fid=fopen(filepath,'r');data='1';N=0;while(0==strcmp('',data))data=fscanf(fid,'%s',1);if(0==strcmp('',data))......
  • Nginx命令(查询nginx配置文件)
    Nginx命令(查询nginx配置文件)个人博客地址:https://note.raokun.top拥抱ChatGPT,国内访问网站:https://www.playchat.topNginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发......
  • hibernate.cfg.xml配置文件简介
    1.Hibernate核心配置文件,也即hibernate.cfg.xml,还可以是hibernate.properties格式。包含了数据库连接的相关信息以及映射文件的基本信息。通常情况下,该配置文件默认放在项目的src目录下,当项目发布后,该文件会在项目的WEB-INF/classes路径下。2.常用的模板<?xmlversion="......
  • java脚本读取finalshell密码
    在finalshell安装目录下找到coon文件夹,下面有许许多多的json文件,在这些文件中找到password{"forwarding_auto_reconnect":false,"custom_size":false,"delete_time":0,"secret_key_id":"","user_name":"root","remote_port_......
  • mybatis-plus没有将XML配置文件放到classpath路径下的解决办法
    1.需求:我将mapper接口对应的xml文件没有放到resources路径下,而是放到了如下图中,导致无法识别1.1默认可以放mapper对应配置文件的位置1.2本人实际放置的mapper对应的xml文件位置2.解决:2.1第一步:在pom文件中添加如下配置<build><resources><reso......
  • php 文件读取和写入详细介绍例子
    *************介绍PHP文件的写入和读取**************/***文件写入*///覆盖写入$filename='leyangjun.txt';$word="北京欢迎你!";$fh=fopen($filename,"w");echofwrite($fh,$word);fclose($fh);//追加写入$filename='leyangjun.txt&......
  • pm2配置文件
    原文详见:https://www.jiyik.com/w/pm2/pm2-configuration-file 一、生成配置//在当前路径生成示例配置文件pm2initsimple这将生成一个默认的配置文件ecosystem.config.jsmodule.exports={apps:[{name:"app1",script:"./app.js"}]} ......
  • flutter入门实战——文件读取和写入
    问题背景本文将介绍flutter中如何读取文件内容以及保存内容到文件。问题分析先直接上效果:问题解决话不多说,直接上代码。main.dart文件,代码如下:import'dart:async';import'dart:io';import'package:flutter/material.dart';import'package:path_provider/path_provid......
  • nginx配置文件
    关于Nginx的核心配置文件nginx.confusernginx;worker_processesauto;error_log/var/log/nginx/error.lognotice;pid/var/run/nginx.pid;events{worker_connections1024;}http{include/etc/nginx/mime.types;default_typeapplication/oct......
  • Bootstrap Table表格中存放下拉框,读取数据填充到下拉框
    初学Bootstarp,个人感觉一个功能非常强大的前端框架,由于学习的路途也不是一番风顺的,难免会遇到问题,将遇到的问题整理,可以时常看看,加深记忆。最近做表格需要在表格中加入<select>标签,将数据填充到下拉框,无奈搞了好几个小时也没有成功,最后经过请教身边的大佬,得以解决。代码如下:htt......