简单的文本文件未正确解析

时间:2015-11-12 03:51:05

标签: java file parsing text-files

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

undefined

//我现在正在尝试解析“电影”和“杂志”这个词,奇怪的是,我的节目似乎总是跳过去“杂志”,但我没有错文本文件。

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

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

在检查代码之后的一些if语句,即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) { } 之后,它总是返回true,而不是false。因此,出于一些奇怪的原因,我永远无法解析“电影”这个词,这一行:flag == true or false永远不会返回true,我不确定这里有什么问题,任何想法都会非常感激。

1 个答案:

答案 0 :(得分:2)

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

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

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