2013-03-11 4 views
0

Я написал простую программу в среде IDE NetBeans с использованием Java. Сделав несколько изменений в главном методе этим утром, консоль ничего не печатает, когда я запускаю программу. Я просто хочу, чтобы он достигнет startMenus (sc). EDIT: Я сейчас поставлю в несколько System.out.println(), и он не достигает «Blah2», который сразу же после моего первого цикла ...NetBeans не будет печатать на консоли JAVA

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

} 
} 
+0

Любые исключения? Основной метод, как известно, генерирует исключение, но кто или что обрабатывает это исключение? – Mechkov

+0

Вы уверены, что это было не потому, что он просто не закончил цикл, прежде чем вы подумали, что это не так? – 11684

+1

Попробуйте System.out при запуске программы, чтобы быть уверенным :) –

ответ

0

Вы уверены, что вы не бросали какой-либо другие исключения, которые убивают ваше приложение, прежде чем он достигнет System.out.println? Судя по вашему описанию, вы можете захотеть либо отладить, либо поместить некоторые другие инструкции println дальше по цепочке, так как они могут умереть из-за чего-то.

+0

Я только бросаю FileNotFoundException. – lancer

0
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!!!"); 
    } 
} 

Пара вещей:

  1. Вам необходимо импортировать дополнительные классы, которые не являются частью вашего основного проекта. Исключения, файл и сканер попадают в эту категорию.
  2. Чтобы создать файл, вам необходимо запустить метод createNewFile(). Ваш исходный код выбрасывал исключение FileNotFound, потому что файл никогда не создавался.
  3. Перед вызовом необходимо установить метод startMenus.

Я включил исправленный код. Надеюсь это поможет!

+0

У меня есть метод startMenus в программе, я просто не публиковал его здесь. Я также создал файлы и поместил их в ту же папку, что и проект. Позвольте мне попробовать IOException и посмотреть, исправляет ли это это – lancer

0

Называемые System.out, вероятно, еще не достигнуты, потому что один из ваших циклов занял слишком много времени, чтобы продолжить, дольше, чем вы были готовы ждать. Запишите что-то изнутри цикла, чтобы получить больше отзывов, программа, вероятно, прекрасна.

+0

Я считаю, что первый цикл бесконечен. Поэтому мне нужно как-то потреблять каждое целое число, поскольку оно читается из файла ... – lancer

+0

Ваш первый цикл действительно не потребляет целое число, поэтому сканер всегда будет иметь следующий int (кроме случаев, когда он вообще отсутствует), потому что вы никогда двигаться дальше. Исправьте его, добавив 'sc.nextInt();' в тело цикла (не поймав int (если вам это не нужно)). – 11684

Смежные вопросы