我有一个简单的文本文件:
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,我不确定这里有什么问题,任何想法都会非常感激。
答案 0 :(得分:2)
我看到的一个问题是" flag"在while循环之外声明。另一个是返回类型是无效的,所以我不知道该方法如何返回true或false。
您正在遍历整个文件,其中包含电影和杂志。旗帜的最终状态将永远为真。
如果将电影放在文件的末尾,是否将标志设置为false?