对于我的程序,我需要从一个dat文件中读取并将20个数字存储在一个数组中。然而,我的数组中唯一存储的是0.我的扫描仪有问题吗?我可以很好地编译程序。但是当我打印数组时,打印的唯一内容是0,即使我明确地将它们设置为等于文件上的下一个int。我一直盯着这个程序一段时间,但找不到问题。谁能告诉我有什么问题。
这是我的程序
import java.util.Scanner;
import java.io.*;
import java.util.*;
public class DuplicateTesterAP
{
public static void main(String[] args) {
//sets up scanner
Scanner inFile = null;
try
{
inFile = new Scanner(new File("prog415h.dat"));
}
catch(FileNotFoundException e)
{
System.out.println("File not found!!");
System.exit(0);
}
//creates array and declares variables
int[] numbers = new int[20];
int determine = 0;
int space = 0;
我认为错误在这里
//stores values from file into array
for(int i = 0 ; i<numbers.length; i++){
numbers[i] = inFile.nextInt();
}
//creates a duplicateap object
DuplicateAP object = new DuplicateAP(numbers);
//finds the repeating numbers and stores them into an array
object.findRepeat();
//header
System.out.println("The original set of numbers are: ");
//output for original set of numbers
for(int i = 0; i<numbers.length; i++){
System.out.print(numbers[i] + " " );
}
这是我的dat文件
12
12
30
12
45
66
78
30
82
19
99
11
11
15
31
18
51
17
12
17
答案 0 :(得分:-1)
您必须检查扫描程序的下一个标记是否是有效的int值,因此循环将如下所示:
int i = 0;
// stores values from file into array
while (inFile.hasNextInt()) {
numbers[i++] = inFile.nextInt();
}