Привет, ребята, я довольно новичок в java, и у меня возникает эта проблема при попытке добавить числа из файла compact.txt в массив. Вот мой код:Добавление чисел в массив из .txt-файла
public void compactArray(){
try{
Scanner scan = new Scanner(new File("compact.txt"));
while(scan.hasNextInt()){
num++;
}
int [] a = new int[num];
Scanner in = new Scanner(new File("compact.txt"));
while(counter < num){
a[counter] = in.nextInt();
counter++;
}
System.out.println(Arrays.toString(a));
}catch(IOException bob){
bob.getMessage();
}
}
Проблема с этим кодом в том, что он никогда не перестает работать. Сначала мой код читает файл compact.txt, а затем подсчитывает количество чисел, которое он должен определить размер массива. Затем я делаю другую переменную сканера, чтобы добавить числа из файла compact.txt в массив. Я использую переменную счетчика как способ остановки, когда желаемое количество чисел добавляется в массив a. Я не слишком уверен, в чем проблема, но он продолжает работать и не попадает в строку, где предполагается распечатать массив. Может кто-то, пожалуйста, помогите мне. Огромное спасибо.
+1 для ответа на вопрос как есть, и дать подсказку не читать его дважды. –
Если я вызову scan.nextInt() внутри первого цикла, как узнать, сколько элементов в массиве. Например, вам не нужно сначала подсчитывать элементы в массиве, а затем создавать массив и, наконец, добавлять в него элементы? – Bobby
Вы можете сохранить число num ++ для подсчета элемента. Но вам также нужно переместить курсор на следующий элемент, используя scan.nextInt(), чтобы вы могли выйти из цикла –