所以我正在为这个项目工作,我将读取一个名为“randomNumbers”的文本文件,将其存储在一个数组中并将其打印到屏幕上。它符合要求,但当我运行代码时,我得到了
INSERT ... ON DUPLICATE KEY UPDATE
我尽力解决这个问题,但我陷入困境。
这是我到目前为止的代码,
enter code here
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
at projectFour.read_file(projectFour.java:32)
at projectFour.main(projectFour.java:13)
答案 0 :(得分:0)
您发布的code
完美无误。
您只需 以确保行数(第一行除外)为(100)。
要证明小规模测试,例如:
将其放入randomNumbers.txt
10
1
2
3
4
5
6
7
8
9
10
答案 1 :(得分:0)
那是因为你的文件中有超过100个数字。如果您只想阅读100个数字,您可以:
public static void read_file()
{
try
{
File file = new File("randomNumbers.txt");
Scanner scan = new Scanner(file);
int maxNumberInFile = convertingStringToInt(scan.nextLine()); // read the first line which is 100 to set array size
global_numbers = new int[maxNumberInFile]; // set the array size equal to the first line read which is 100
int i = 0;
//while(scan.hasNextLine()) // while there is a next line to read, do this...
while (i < maxNumberInFile)
{
String line = scan.nextLine();
global_numbers [i] = convertingStringToInt(line);
i++;
}
scan.close();
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
如果您不确切知道文件中有多少个数字,可以使用List来存储数字。
答案 2 :(得分:0)
谢谢,它现在正在读取文件,但是在我的conversionToStringMethod中有一些不正确的东西,因为所有输出值都是-460,除了读取文件中的最后一个数字....
enter code here
public static int convertingStringToInt(String numbers) //what does string number equal? why/where is it declared?
{
try
{
return Integer.parseInt(numbers);
}
catch(NumberFormatException n)
{
return -460;
}
}