java 使用 append 从文件的一行中提取数据

java using append to extract data from a line of a file

我对 Java 非常陌生,您可以从我的代码中看出这一点。欢迎任何帮助:)

我有一个文件包含如下行:

文件中的列:7

确切文件数量(行):118

准确的文件记录长度(可变块中的字节数):52

我想用append来提取标签后面的数字,但是returns是零,不是标签后面的实际数字。这是我拥有的:

   public int extractVariables(String aLine)
   {
    Scanner scan = new Scanner(actualFile);
    while(scan.hasNext())
    {
        String line = scan.nextLine();
        if(line.contains("Columns in File:"))
        {
            StringBuilder numOfVariables = new StringBuilder();
            for(int i = 16; i < line.length(); i++)
            {
                numOfVariables.append(charAt(i)).trim();
            }
      // check if the information is missing
                if(numOfVariables != null && !numOfVariables.equals(""))
                {
                    int variables = Integer.parseInt(numOfVariables);
                }
                else
                {
                    System.out.print("Number of varibales is missing!");
                }
            }
            return variables;
        }
    }

此外,我要求用户使用命令行参数输入一个文件,并将该文件存储到 actualFile 中,如下所示:

      try{
          File actualFile = new File(args[0]);
          System.out.println("File was processed: true");
         }
      catch (ArrayIndexOutOfBoundsException e)
        {
            System.out.println("File was processed: false. Re-enter filename.");
            return;
        }

所以我为扫描仪设置了 actualFile 以打开文件并读取行,扫描仪是否读取了正确的文件?也许这就是方法 returns 零的原因?

而不是做

for(int i = 16; i < line.length(); i++)
        {
            numOfVariables.append(charAt(i)).trim();
        }

使用 nextInt() 似乎更好; 所以,代码看起来像这样:

line.nextInt();

此外,要检查是否有号码或缺少号码,您可以使用:

if(line.hasNextInt()) {...}