JAVA:无法理解如何使用输入文件

JAVA: Trouble understanding how to work with input files

我是 JAVA 和这个论坛的新手,我正在尝试找出一个项目的问题,该项目从文件中给定的三个边对三角形进行分类。该文件可以是多个不同的行(多个三角形),行必须以'#'开头才能被程序视为有效,并且在列出三边后可以有不同类型的多余数据。此处供参考的是示例输入文件和程序运行时应生成的相应输出文件。 input/output reference。 我对我的大部分程序都很有信心,但我遇到的具体问题是在我的主要方法中处理输入文件。我不明白 a) 如何让程序只识别以“#”开头的行作为有效输入。 b) 如何到达“#”之后的下一个扫描器标记,并仅当它们是整数时才将这三个标记分配给 1-3 边(它们不一定必须是)。 c) 如何将边后的剩余数据(如果有)分配给 String 变量。 如果您知道有任何有用的扫描仪方法可以帮助我,我将不胜感激。通读 JAVA API 对我来说仍然是希腊语。最重要的是,如果有一种方法 returns 当前令牌的数据类型是什么,我会不断收到 InputMismatchException,因为我试图将非整数分配给我的双方。 最后这是我一直困扰着我的主要方法。再次感谢您提供的任何见解。

public static void main (String[] args) throws FileNotFoundException, IOException
    {
        String input, output;
        int side1 = 0, side2 = 0, side3 = 0, lineCounter = 1;
        String irrelevant;
        File inputFile;
        Scanner inputRead = null;

        System.out.println("Please choose the .txt file you would like to use for triangle side input.");
        input = fileSelect();

        System.out.println("Please choose the .txt file you would like to use as the program output file.");
        output = fileSelect();

        FileWrite outputFile = new FileWrite();

        outputFile.fileCreate(output);

        inputFile = new File(input);

        try
        {
            inputRead = new Scanner(inputFile);
        }
        catch (FileNotFoundException e)
        {
            System.out.println("No file or unsupported file found: Please choose another input file.");
            input = fileSelect();
        }

        while (inputRead.hasNextLine())
        {
            String line = inputRead.nextLine();
            while (line != null)
            { 
                if(inputRead.hasNext("#"))
                {
                    side1 = inputRead.nextInt();
                    side2 = inputRead.nextInt();
                    side3 = inputRead.nextInt();
                    irrelevant = inputRead.next();

                    areaCalc(side1, side2, side3, lineCounter, output);
                }
                lineCounter ++;
            }
        }
        if (!inputRead.hasNext())
        {

        }

        inputRead.close();
    }  

像下面这样进行行解析怎么样

try {
             String content[] = line.split(" ");
            if(content.length > 3) {
                 if(content[0].equals("#")) {
                   int side1 = Integer.valueOf(content[1]);
                   int side2 = Integer.valueOf(content[2]);
                   int side3 = Integer.valueOf(content[3]);
                   if(side1 > 0 && side2 > 0 && side3 > 0) {
                      areaCalc(side1, side2, side3, lineCounter, output);
                  }
               }
            }
       }catch(NumberFormatException e){}