这是test.txt文件 我是学习java的新手。我想从此文件中搜索最新或最大日期和时间。 我的项目因此而被困在这里请帮助我。
Event Date and Time="2013/06/24 16:53:45"
Event Date and Time="2013/06/24 16:53:46"
Event Date and Time="2013/06/24 16:53:41"
Event Date and Time="2013/06/24 16:53:33"
Event Date and Time="2013/06/24 16:53:25"
这是我的代码我在while循环中所做的事情我无法理解请帮帮我
try {
FileInputStream fstream1 = new FileInputStream(file);
DataInputStream in1= new DataInputStream(fstream1);
BufferedReader bf = new BufferedReader(new InputStreamReader(in1));
String line;
line=bf.readLine();
boolean myheader = checkHeader(line.trim());
if(!myheader)
{
while (( line = bf.readLine()) != null)
{
}
}
catch(Exception)
{
}
private static boolean checkHeader(String headerString) {
boolean result = true;
String[] headerElements = headerString.split(":");
List<String> list = new ArrayList<String>();
for(int i = 0; i < headerElements.length; i++){
if(i != headerElements.length - 1)
list.add(headerElements[i] + ":");
else
list.add(headerElements[i]);
}
for(String listElements : list){
if(!HEADER.contains(listElements)){
result = false;
break;
}
}
return result;
}
答案 0 :(得分:2)
这里有一些伪代码,因为我不懂你的代码。
ArrayList ls = new ArrayList<String>();
Date date1 = null, date2 = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:ss:SS");
ls.add("2013/06/24 16:53:45");
ls.add("2013/06/24 16:53:46");
ls.add("2013/06/24 16:53:41");
ls.add("2013/06/24 16:53:48");
try {
date1 = sdf.parse((String) ls.get(0));
} catch (ParseException e1) {
e1.printStackTrace();
}
for (int i = 1; i < ls.size(); i++) {
try {
date2 = sdf.parse((String) ls.get(i));
} catch (ParseException e) {
e.printStackTrace();
}
if (date2.compareTo(date1) > 0) {
date1 = date2;
}
}
System.out.println("Latest Date :::::" + sdf.format(date1));
我希望这会有所帮助。如果您有任何问题,请询问。
答案 1 :(得分:1)
将文件存储值迭代到列表,并通过迭代循环将日期值相互比较。