Java读取文件并与当前时间匹配

时间:2012-08-22 14:28:20

标签: java file metatag

我有这个标签

<META HTTP-EQUIV="Expires" CONTENT="Thu, 23 Aug 2012 09:30:00 GMT">

在文件中。我必须在文件中找到此标记并从中获取内容部分并与当前日期和时间匹配。 如果文件中的日期和时间早于当前时间设置标志。有人可以帮助我这样做,我是新手吗?感谢

2 个答案:

答案 0 :(得分:2)

  1. 内容文件看起来像HTML文件。因此,使用像JSoup这样的库来检索META标记的CONTENT属性的值。
  2. 然后使用SimpleDateFormat将字符串转换为Calendar / Date对象。
  3. 然后使用after()/before() API进行比较。

答案 1 :(得分:1)

这可以帮助您入门:

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class FindStringInFileTest {

    public static void main(String[] args) {

        File f = new File("c:/test.txt");
        String res = find(f);

        if (res != null) {
            System.out.println("Found Meta Http-Equiv tag");
            System.out.println(res);//print META HTTP-EQUIV line
            //check the line for whatver dates etc here
        } else {
            System.out.println("Couldnt find Meta Http-Equiv tag");
        }

    }

    public static String find(File f) {
        String result = "";
        Scanner in = null;
        try {
            in = new Scanner(new FileReader(f));
            while (in.hasNextLine()) {
                String tmp = in.nextLine();
                if (containsMetaHttpEquiv(tmp)) {
                    result = tmp;//assign line which has META HTTP-EQUIV tag
                    break;//so we dont check more
                } else {
                    result = null;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    public static boolean containsMetaHttpEquiv(String str) {
        if (str.contains("<META HTTP-EQUIV=\"Expires\" CONTENT=")) {
            return true;
        }
        return false;
    }
}

它将读入文本文件并检查META HTTP-EQUIV标记,并返回包含标记的行/字符串,如果找不到null标记,则返回META HTTP-EQUIV。 然后,您将使用substring()indexOf()方法提取日期,然后将其解析为SimpleDateFormat,然后比较2个日期,并将标记适当的标记写入文件。

编辑:

以下是从HTTP-EQUIV META标记中提取内容所需的方法:

public static String getContentOfMetaTag(String tag) {
    String search = "CONTENT=";
    return tag.substring(tag.indexOf("CONTENT=") + search.length() + 1, tag.indexOf('>') - 1);
}

您可以使用String返回的find(new File)来调用此方法(确保在调用getContentOfMetaTag(String tag)之前它不为空)