Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java读取文件并与当前时间匹配_Java_File_Metatag - Fatal编程技术网

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

Java读取文件并与当前时间匹配,java,file,metatag,Java,File,Metatag,我有这个标签 <META HTTP-EQUIV="Expires" CONTENT="Thu, 23 Aug 2012 09:30:00 GMT"> 在文件中。我必须在文件中找到这个标签,从中取出内容部分,并与当前日期和时间匹配。 如果文件中的日期和时间早于当前时间,请设置一个标志。有人能帮我做这个吗,我是新手?谢谢 内容文件看起来像一个HTML文件。因此,请使用类似的库来检索META标记的CONTENT属性的值 然后使用SimpleDateFormat将字符串转换为日历/日期

我有这个标签

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

在文件中。我必须在文件中找到这个标签,从中取出内容部分,并与当前日期和时间匹配。 如果文件中的日期和时间早于当前时间,请设置一个标志。有人能帮我做这个吗,我是新手?谢谢

  • 内容文件看起来像一个HTML文件。因此,请使用类似的库来检索META标记的CONTENT属性的值
  • 然后使用
    SimpleDateFormat
    将字符串转换为
    日历
    /
    日期
    对象
  • 然后使用API进行比较

  • 这可能有助于您开始:

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

    您可以使用从
    find(新文件)
    返回的
    String
    调用此方法(在调用
    getContentOfMetaTag(String标记)
    之前,请确保其不为null)

    我只知道如何在java中读取整个文件,然后我要做的就是获取标记,或者有更好的方法来解析和读取它吗it@user1617247解析HTML的更好方法是使用用于解析HTML的库(如我在回复中提到的)。您接受的答案看起来很简单,但可能会导致问题。如果META标记位于多行上,该怎么办?不是真的!在没有相应库的情况下解析html文件会导致这样的问题。你的解决方案太幼稚了。@Pangea我觉得用库来做纯java可以做的事情是荒谬的。是的,你是对的,但我不是那种依赖库的人。叫我独立吧
    public static String getContentOfMetaTag(String tag) {
        String search = "CONTENT=";
        return tag.substring(tag.indexOf("CONTENT=") + search.length() + 1, tag.indexOf('>') - 1);
    }