NetBeans赢得';t打印到控制台JAVA

NetBeans赢得';t打印到控制台JAVA,java,netbeans,Java,Netbeans,我使用Java在NetBeans IDE中编写了一个简单的程序。今天早上对main方法做了一些更改之后,当我运行程序时,控制台不会打印任何内容。我只是想让它到达startMenus(sc)。编辑:我现在加入了一些System.out.println(),但它并没有达到我第一次循环之后的“Blah2” public class Calculator { public static int[] NUMBERS; //global value for the array public sta

我使用Java在NetBeans IDE中编写了一个简单的程序。今天早上对main方法做了一些更改之后,当我运行程序时,控制台不会打印任何内容。我只是想让它到达startMenus(sc)。编辑:我现在加入了一些System.out.println(),但它并没有达到我第一次循环之后的“Blah2”

public class Calculator {

public static int[] NUMBERS;    //global value for the array

public static void main(String[] args) throws FileNotFoundException {      
    File file = new File("data.txt");
    Scanner sc = new Scanner(file);

    System.out.println("Blah1");

    int counter = 0;
    while (sc.hasNextInt()) {
        counter = counter++;
    }

    System.out.println("Blah2");

    int lenth = counter;

    NUMBERS = new int[lenth];

    System.out.println("Blah3");

    sc.close();

    File file2 = new File("data.txt");
    Scanner sc2 = new Scanner(file2);

    System.out.println("Blah4");

    int i = 0;

    while (sc2.hasNextInt()) {
        NUMBERS[i] = sc2.nextInt();
        ++i;
    }

    System.out.println("Blah5");

    sc2.close();


    System.out.println("Welcome to Calculation Program!\n");
    startMenus(sc);

}
}

你确定没有抛出任何其他异常,这些异常会在应用程序到达System.out.println之前杀死你的应用程序吗?根据您的描述判断,您可能希望调试或将一些其他println语句放在更高的位置,因为它可能由于某些原因而消亡

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;

public class Calculator {    

    public static int[] NUMBERS;    //global value for the array

    public static void main(String[] args) throws FileNotFoundException, IOException {
    File file = new File("data.txt");
    file.createNewFile();
    Scanner sc = new Scanner(file);

    int counter = 0;
    while (sc.hasNextInt()) {
        counter = counter++;
    }

    int lenth = counter;

    NUMBERS = new int[lenth];

    sc.close();

    File file2 = new File("data.txt");
    file2.createNewFile();
    Scanner sc2 = new Scanner(file2);

    int i = 0;

    while (sc2.hasNextInt()) {
        NUMBERS[i] = sc2.nextInt();
        ++i;
    }

    sc2.close();


    System.out.println("Welcome to Calculation Program!\n");
    startMenus(sc);

}

    private static void startMenus(Scanner sc) {
        System.out.println("Run your code here!!!");
    }
}
两件事:

  • 您需要导入不属于核心项目的其他类。例外情况、文件和扫描仪都属于这一类
  • 您需要运行createNewFile()方法来实际创建文件。原始代码引发FileNotFound异常,因为从未创建该文件
  • 在调用startMenus方法之前,需要先定义它

  • 我已经包括了一些更正的代码。希望这有帮助

    System.out调用可能尚未到达,因为您的一个循环执行时间太长,比您愿意等待的时间更长。从循环中记录一些内容以获得更多反馈,程序可能很好。

    有例外吗?注意到主方法会抛出异常,但谁或什么人在处理该异常?你确定这不是因为它在你认为它没有完成循环之前没有完成循环吗?请在程序启动时尝试System.out,以确保:)我有一个输出窗口。我试过System.out.println(“诸如此类”);当我运行它的时候,它被打印出来了。我只是抛出了FileNotFoundException。我在程序中有startMenus方法,我只是没有在这里发布它。我还创建了这些文件,并将它们放在与项目相同的文件夹中。让我试试IOException,看看它是否修复了它。我相信第一个循环是无限的。因此,我需要在读取文件时以某种方式使用每个整数…您的第一个循环确实不使用整数,因此扫描器将始终具有下一个整数(除非它没有整数),因为您永远不会继续。通过添加
    sc.nextInt()修复它到循环体(不捕获该int(如果不需要它))。