使用Java验证文本文件内容

时间:2013-06-27 12:28:39

标签: java sql

这是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;
}

2 个答案:

答案 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)

将文件存储值迭代到列表,并通过迭代循环将日期值相互比较。