如何得到.properties配置文件的下一行记录
我的DateConfig.properties文件的内容是:
2008-07-17=2008-07-17 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-18=2008-07-18 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-21=2008-07-21 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-22=2008-07-22 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-23=2008-07-23 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-24=2008-07-24 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-25=2008-07-25 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-28=2008-07-28 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-29=2008-07-29 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-30=2008-07-30 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-07-31=2008-07-31 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-08-01=2008-08-01 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-08-04=2008-07-04 09\:30\:00 11\:30 13\:00\:00 15\:00
2008-08-05=2008-07-05 09\:30\:00 11\:30 13\:00\:00 15\:00
下面的方法意思是当我输入某个日期以后,从配置文件中匹配,如果存在这个日期,就返回这一行的记录的数组,如:我输入“2008-07-18”,就会返回“2008-07-18=2008-07-18 09\:30\:00 11\:30 13\:00\:00 15\:00”这一条记录;现在我想要的是,如何得到它的下一条记录,如:我我输入“2008-07-18”,返回的是2008-07-21=2008-07-21 09\:30\:00 11\:30 13\:00\:00 15\:00这条记录,请大家帮帮忙,知道的告诉我一下,谢谢!!
public String[] getRunDateTime(String date) {
String[] dateArray=null;
try {
Properties pro = new Properties();
InputStream in =getClass().getResourceAsStream("DateConfig.Properties");
//加载输入流
pro.load(in);
//得到一个键值
String dateString = pro.getProperty(date);
if(dateString!=null){
StringTokenizer token = new StringTokenizer(dateString);
dateArray = new String[token.countTokens()];
for (int j = 0; token.hasMoreTokens(); j++) {
dateArray[j] = token.nextToken();
}
}
} catch (Exception e) {
System.out.println("得到配置文件中的日期时发生了异常");
e.printStackTrace();
}
return dateArray;
}
------解决方案--------------------
Java code
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.List;
import java.util.Properties;
public class GetDate
{
private String date = "2008-07-18";
private Comparator comp = new Comparator()
{
public int compare(Object o1, Object o2)
{
String val1 = o1.toString();
String val2 = o2.toString();
if (val1 == null && val2 == null )
{
return 0;
} else if (val1 == null && val2 != null )
{
return -1;
} else if (val1 != null && val2 == null )
{
return 1;
}
return val1.trim().compareToIgnoreCase(val2.trim() );
}
public boolean equals(Object obj) {
return true;
}
};
public void getRunDate()
{
Properties pro = new Properties();
InputStream in = this.getClass().getResourceAsStream("DateConfig.properites");
try
{
pro.load(in);
Enumeration en = pro.propertyNames();
List list = new ArrayList();
while(en.hasMoreElements())
{
list.add(en.nextElement());
}
Collections.sort(list, comp);
int index = list.indexOf(this.date);
if(index == -1)
{
System.out.print("你输入的日期有误.");
}
else if(index == list.size() - 1)
{
System.out.print("你输入的日期是最后的一个日期.");
}
else
{
String key = list.get(index + 1).toString();
System.out.print(key + "=" + pro.getProperty(key));
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
GetDate gd = new GetDate();
gd.getRunDate();
}
}