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

标签 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();
        }

我查遍了一切,但找不到任何对我的情况有帮助的东西。任何关于这方面的提示都会很可爱。

最佳答案

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()

关于java - 从文件读取数据时遇到问题 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610021/

相关文章:

excel - 统计按一定分隔符分割的数据条数

Python groupby 按分隔符拆分列表

java - 获取现有的 ArrayList 并通过 getter 向其添加值

java - 为什么 DocumentBuilder.parse 抛出 SaxParserException

java - 使用 Java FileWriter 的文件未找到异常

Python:为什么 peek(1) 返回 8K 字节而不是 1 字节?

java - 无法获得 gomobile 绑定(bind)以使用 java

java - Eclipse 中的 setfullscreen(boolean) 用于在场景生成器中设计的 UI

c++ - 无法使用 InFile 将文件正确读入结构成员

c - Fscanf 和分隔符