来自文本文件的Java三角形

来自文本文件的Java三角形,java,Java,我试图让Java从包含在文本文件中的输入中识别三角形。我有当用户向控制台输入整数时识别三角形的代码,但我希望它现在从单独的文本文件中读取整数。由于某些原因,我在执行此操作时出错,例如无法读取文件。我添加了一个文件异常,但它所做的只是在所有三个if语句中打印。任何帮助都将不胜感激。我只是不认为打开文件时的正常线程对我有帮助 import java.util.Scanner; public class Triangle { public static void main(String[]

我试图让Java从包含在文本文件中的输入中识别三角形。我有当用户向控制台输入整数时识别三角形的代码,但我希望它现在从单独的文本文件中读取整数。由于某些原因,我在执行此操作时出错,例如无法读取文件。我添加了一个文件异常,但它所做的只是在所有三个if语句中打印。任何帮助都将不胜感激。我只是不认为打开文件时的正常线程对我有帮助

import java.util.Scanner;

public class Triangle {
    public static void main(String[] args) {
        Scanner user = new Scanner(System.in);
        double a, b, c;

        System.out.println("Enter longest side: ");
        a = user.nextDouble();
        System.out.println("Enter second side: ");
        b = user.nextDouble();
        System.out.println("Enter third side: ");
        c = user.nextDouble();

        if (a == b && b == c) {
            System.out.println("Equilateral Triangle");
        } else {
            if ((a == b && b !=c) || (a == c && a != b)) {
                System.out.println("Isoceles Triangle");
            }
            if (a != b && b != c && a != c) { 
                System.out.println("Scalene Triangle");
            }
            if (((a + b) > (c)) && ((a + c) > b) && ((b + c) > a)) {
                System.out.println("Not a Triangle");
            }
        }        
    }
}

将文本文件传递给扫描仪对象。将此添加到您的代码中

File input = new File("Whatever.txt");
Scanner scan = new Scanner(input);

确保文件与项目目录的路径相同,否则必须手动指定路径。

您应该查看链接的重复错误的所有好例子,然后将其应用到代码中。通过这种方式,您将学到更多。保持代码整洁/符合受人尊敬的代码样式指南有助于调试,并使其他人可读。样式和方法的一致性极大地帮助了调试&提高了可维护性并支持同行评审。这包括在操作员周围留出空间。编写代码的时间越长,花时间看专业代码和非专业代码,把所有东西塞进一起看起来就真的很俗气。此外,有时使用大括号,有时不使用if/else的聪明技巧并不总是一个好处。有时候,如果stmtThanks感谢你的帮助,那么在一个复合词中使用所有大括号会更好。我添加了您所说的和Eclipse所说的,但这对我不起作用。公共类三角形{public static void main(String[]args){File input=new File(“input.txt”);Scanner scan=new Scanner(input);//变量double a、b、c;System.out.println(“输入最长边”);a=((Scanner)input.nextDouble();System.out.println(“输入第二边”);b=((扫描仪)输入).nextDouble();System.out.println(“输入第三方:”;c=((扫描仪)输入).nextDouble();这是我目前正在做的事情,并且得到了[link],它抱怨强制转换,因为这就是你正在做的。(键入)对象将尝试按类型计算对象的成本。若要以我认为它希望的方式引用扫描仪,请参见。nextDouble()