当前位置: 首页 > 知识库问答 >
问题:

从属性文件获取值

颛孙晗昱
2023-03-14
  • 我有一个java代码可以将这些值追加到我的属性文件中
  • 我的属性文件将有如下条目。
  • key1=主机、端口、orcl、用户名、密码
  • key2=主机、端口、orcl、用户名、密码
  • key3=主机、端口、orcl、用户名、密码等…

这些key1、key2和key3是连接名。

  • 在进入属性文件之前,首先我必须检查该文件是否提供了连接名条目。我的意思是,如果用户再次使用key1或key2或key3连接名输入值,它必须发出警报,说明此连接名可用,所以请尝试使用其他名称。

下面是我的java代码,用于在文件中输入一个条目:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
       try
       {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            con = DriverManager.getConnection("jdbc:oracle:thin:@"+host+":"+port+"/"+service,username,password);
            con.setAutoCommit(false);
            if (con!=null)
            {
                 session.setAttribute(username, con); 
                 out.println("Connected Successfully");          
                 PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("my properties file", true)));
                 out1.println(cname+" = "+host+","+port+","+service+","+username+","+password);
                 out1.close();
            }
            else
            {
                 out.println("Error in getting connection");
            }
       }
       catch(Exception e)
       {
            e.printStackTrace();
       }
}

共有1个答案

高茂
2023-03-14
Properties prop = new Properties();
prop.load("pathToPropertiesFile");


String key; //This is the key which user will enter
String propKey = prop.getProperty(key);
if(propKey == null)
{
    // Key is not present so enter the key into the properties file
      prop.setProperty("keyName", key);
}
else
{
    // Throw error saying key already exists
      out.println("Key "+key+" already exists.");
} 

有关Java中属性的更多信息和示例,请参见此处

更新:好的,如果您希望检查是否存在这样的值(不管)任何键,那么使用以下代码

   // Ignoring the loading of the properties file
   // Assuming properties file is loaded in "prop"
   Enumeration keySet = prop.keys();
   String key; // This is the key which user will enter
   boolean keyExists = false;
   while(keySet.hasMoreElements())
   {
       String keyName = (String) keySet.nextElement();
       String keyValue = prop.getProperty(keyName);
       if( key.equals(keyValue))  //Check against all the keys' value present
       {
           keyExists = true;
           break;
       }
   }

   if(keyExists)
   {
       //throw error
   }
   else
   {
       //insert key
   }

方法是获取所有存在的键并对照其值进行检查。如果属性文件中存在的值与用户输入的值相同,那么您就知道应该做什么了

如果您想要根据键名进行检查,那么只需更改循环中的If条件

if( key.equals(keyName))  //Check against all the key Name present in the properties file
{
 keyExists = true;
 break;
}

希望这能有所帮助!!

 类似资料:
  • 我想从application.properties文件中定义的键中读取整数值。这是我的属性文件。 spring.rabbitmq.port=31111 代码如下: 代码有问题的行是:

  • 我在数据库中具有与数据库连接相关的属性。xml文件。我想在一个表中使用相同的值。属性文件。是否可以从中获取值。xml文件,并设置为。财产? --谢谢 使用loadFromXML时发生异常 线程“main”java中出现异常。util。InvalidPropertiesFormatException:组织。xml。萨克斯。SAXException:无效的系统标识符:http://www.hibern

  • 问题内容: 我正在用弹簧。我需要从属性文件中读取值。这是内部属性文件,而不是外部属性文件。属性文件可以如下。 我需要以传统方式从属性文件中读取这些值。如何实现呢?Spring 3.0是否有最新方法? 问题答案: 在你的上下文中配置PropertyPlaceholder: 然后,你引用bean中的属性: 编辑:更新了代码以使用逗号分隔的多个值来解析属性: 如果那不起作用,则可以定义一个带有属性的be

  • 问题内容: 在angularJS中,如何从属性文件中读取值? app.js: 问题答案: 如果是驻留在Web服务器上的文件,则只需执行以下操作: 您可以在此处查看示例: http://plnkr.co/edit/3Ne3roFOwcfVmg2mgnUr?p=preview

  • 问题内容: 抱歉,这似乎是一个简单的问题,但是我已经开始对此进行讨论了…… 我有一个看起来像这样的XML文件… 我正在尝试获取 VarNum 。 到目前为止,我已经成功使用以下代码来获取其他信息: 我只是无法获取VarNum(我认为是属性值?) 谢谢! 问题答案: 您应该可以使用SimpleXMLElement ::attributes()来获得它 尝试这个: 这将为您显示第一个元素的所有名称/值