我有这个标签
<META HTTP-EQUIV="Expires" CONTENT="Thu, 23 Aug 2012 09:30:00 GMT">
在文件中。我必须在文件中找到此标记并从中获取内容部分并与当前日期和时间匹配。 如果文件中的日期和时间早于当前时间设置标志。有人可以帮助我这样做,我是新手吗?感谢
答案 0 :(得分:2)
SimpleDateFormat
将字符串转换为Calendar
/ Date
对象。 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)
之前它不为空)