1
  • 我有一个 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();
       }
}
4

2 回答 2

4
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
   }

方法是获取所有存在的键并检查其值。如果属性文件中的值与用户输入的值相同,否则您知道要做什么

如果要对 KeyName 进行检查,则只需更改循环中的 if 条件

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

希望这可以帮助!!

于 2013-02-22T12:01:14.143 回答
0

看看Properties班级。它有一些可能有用的相关方法;

load()
save()
setProperty()
containsKey()
于 2013-02-22T12:32:23.673 回答