繁体   English   中英

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

[英]Having problems reading data from a file - java

我很确定它与定界符有关,而且我对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();
        }

我四处张望,找不到任何有助于我的处境的东西。 任何提示,这将是可爱的。

您为定界符提供的正则表达式未按照您认为的那样做。 我会改用这种方法。

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]);

String#split()的文档

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM