怎么得到.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(); } }阅读上一篇:java学到什么时候要需要学习数据库,该如何解决 下一篇:返回列表