从文件读取数据时遇到问题 - java

时间:2014-02-06 17:35:54

标签: java file-io delimiter

我很确定它与分隔符有关,而且我对Java相对较新,似乎无法找到答案。我必须从名为Simulation.Configuration的文件中读取,其中包含以下数据:

    dimensionX: 100
    dimensionY: 100
    numberOfMobileObjects: 5
    durationOfSimulationTime: 10
    WarningGeotask: 1, 3
    WarningGeotask: 2, 3
    CounterGeotask: 1, 3
    PopuplationMonitoringGeotask: 2, 3, 3

我有一个扫描仪阅读以查找数据并使用它们执行某些操作。我可以很容易地通过标签(dimensionX,dimensionY等),但似乎无法达到数字。我已经尝试了很多方法使用分隔符来达到这些数字,但似乎无法达到它们。我最近尝试过的是使用

scanner.useDelimiter("[ ,:]");

了解数据。当我这样做时,它给了我一个InputMismatchException。 这是我正在阅读文件的方式:

    Scanner scanConfig = new Scanner(new File("Simulation.Configuration"));

    scanConfig.useDelimiter("[ ,:]");

    int dimensionX = 0;
    int dimensionY = 0;
    int numberOfMobileObjects = 0;


    while(scanConfig.hasNextLine()){

        String nextLabel = scanConfig.next();
        if(nextLabel.equals("dimensionX")){

            dimensionX = scanConfig.nextInt();
        }
        if(nextLabel.equals("dimensionY")){

            dimensionY = scanConfig.nextInt();
        }
        if(nextLabel.equals("numberOfMobileObjects")){

            numberOfMobileObjects = scanConfig.nextInt();
        }

我看了一遍,找不到任何有助于我情况的事情。任何有关这方面的提示都很可爱。

2 个答案:

答案 0 :(得分:1)

您为分隔符提供的regex没有按照您的想法进行操作。我会接受 相反,这种做法。

String input = scanner.nextLine();
String[] array = input.split(":");
String label = array[0];
String data = array[1];    
String[] number = data.split(",");   
Integer x = new Integer(number[0]);

Documentation for String#split()

答案 1 :(得分:0)

你的useDelimiter参数错误。 “[,:]”仅使用一个字符作为分隔符。你想要任何一套。只需将其更改为:“[,:] +”。