简单的文本文件没有被正确解析

Simple textfile not being parsed correctly

我有一个简单的文本文件:

type = "Movie"
year = 2014
Producer = "John"
title = "The Movie"

type = "Magazine"
year = 2013
Writer = "Alfred"
title = "The Magazine"

// 我现在正在尝试解析 "Movie" 和 "Magazine" 这个词,奇怪的是,我的程序似乎总是跳过并转到 "Magazine" ,但我的文本文件没有任何问题。

public void Parse() throws IOException {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(new File("test.txt")));

            String line;
            boolean flag;
            flag = false;

            while ((line = reader.readLine()) != null) {

            if (line.contains("=")) {
                String[] bits = line.split("=");
                String name = bits[0].trim();
                String value = bits[1].trim();

                if (name.equals("type")) {
                    if(value.equals("\"Movie\"")) 
                        flag = false;
                    if(value.equals("\"Magazine\"")) 
                        flag = true;
                }
             }
             if(flag == true)
                 System.out.println("flag is true");
             if(flag == false)
                 System.out.println("Flag is false");
            }
        } catch (FileNotFoundException e) {

        }

检查代码后的几个 if 语句后,即 if flag == true or false,它总是 returns 真,而不是假。所以出于某种奇怪的原因,我永远无法解析 "Movie" 这个词,这一行:if(value.equals("\"Movie\"")) never returns true,我不确定这里有什么问题,任何想法都是非常感激。

我看到的一个问题是 "flag" 是在 while 循环之外声明的。另一个是 return 类型是无效的,所以我看不出该方法是如何 returning true 或 false 的。

您正在遍历整个文件,其中包含电影和杂志。 flag 的最终状态永远为真。

如果将电影放在文件末尾,标志是否设置为 false?