在多行文本文件上使用分隔符的问题

时间:2013-02-20 05:36:37

标签: java java.util.scanner delimiter

假设我们有一个包含动物及其颜色的文本文件:

dog=brown
cat=yellow
bird=red

我需要得到动物的颜色,所以我写了这个方法。我用动物调用方法,我想要参数中的颜色。

public String getAnimal(String animal) throws IOException{
        Scanner sc = new Scanner(TEXT_FILE).useDelimiter("=");
        for (int i = 0; i < 3; i++){
            if(sc.nextLine().startsWith(animal)){
                sc.next();
                return sc.next();
            }
            sc.nextLine();
        }
         return null;
    }

它只是半工作。例如,调用System.out.println(getAnimal("cat"));,打印:

yellow
cat

如果扫描程序忽略了任何行并在分隔符之间打印任何内容的事实。

1 个答案:

答案 0 :(得分:0)

如果这是您期望的输入格式,则您使用Properties类(docs.oracle.com/javase/6/docs/api/java/util/Properties.html)

OR

您可以使用Apache FileUtils.readLines阅读所有内容。然后使用String.split=字符拆分字符串以分隔键值对。