Java:如何从输入文件中读取和存储数据?

时间:2015-04-07 17:23:07

标签: java java.util.scanner

我需要存储具有以下格式的输入文件中的数据:

k=5
1: 62 35
2: 10 49

1 Banana
2 Apple

我需要将k的值存储为int,然后我需要将接下来两行的int值存储为[2] [2] -array,最后我需要字符串“Banana”和“Apple”存储在列表中。我尝试使用useDelimiter但它忽略了我的分隔符并将整行读作一个行实例。

public static void main(String[] args) {

    File file = new File("input.text");

    try {

        Scanner scanner = new Scanner(file);
        scanner.useDelimiter("n=");
        scanner.useDelimiter(".:");             
        int k = scanner.nextLine();
        for (int i = 0; i < 2; i++)
            for (int j = 0; j < 2; j++)
                array[i][j] = scanner.nextInt();
            }
        } scanner.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

}

1 个答案:

答案 0 :(得分:1)

如果文本总是具有相同的结构,那么你可以做

int k = Integer.parseInt(scanner.nextLine().substring("=")[1]);
String currentLine;
for (int i = 0; i < 2; i++)
   currentLine = scanner.nextLine().substring(currentLine.indexOf(" ") + 1)
   for (int j = 0; j < 2; j++)
       array[i][j] = currentLine.split(" ")[j];
   }
}

然后对于Banana和Apple解析,应用相同的逻辑。子串直到第一个空格的索引+ 1个字符,因为我们不想保留它。然后将该字符串添加到列表中。