[从文本文件写入时,数组仅将值设置为“ 0”
来源:爱站网时间:2021-09-16编辑:网友分享
String path1,path2; int count = 0,i = 0; path1 = args [0];文件文件=新文件(path1); FileReader reader =新的FileReader(file);扫描仪inputFile =新的扫描仪(阅读器); ...
问题描述
String path1, path2;
int count = 0, i = 0;
path1 = args[0];
File file = new File(path1);
FileReader reader = new FileReader(file);
Scanner inputFile = new Scanner(reader);
while(inputFile.hasNextInt()) {
inputFile.nextLine();
count++;
}
int[] array1 = new int[count];
while(inputFile.hasNextInt()) {
//inputFile.nextLine();
array1[i] = inputFile.nextInt();
i++;
}
我以前从未遇到过此问题,但是当我尝试从仅包含int值(每行一个)的文本文件中将值写入数组时,我的数组仅返回所有“ 0”。而不是文本文件中的数字。我不确定是否与命令行有关,但在IDE中输入了正确的参数(文件目标)。
提前感谢!
思路:
请注意,两个while循环的退出条件都相同。如果第一个结束,则第二个将跳过,因为条件立即为假。扫描仪的指针已经在文件的末尾(所有数字均已在第一个循环中读取),因此没有要读取的内容。
您有2个解决此问题的选项。
- 使用数组列表:使用
ArrayList
对象将数字保存在第一个循环中。列表随着输入数字的增长而增长,因此您无需在创建此对象之前知道行数,而无需知道此数目即可创建数组。 - 再次扫描文件:在循环之间关闭以前的文件阅读器和扫描器,然后创建一个新的文件阅读器和扫描器。此新扫描程序将再次指向文件的开头,第二个循环将平稳运行。
上一篇:替代在控制台中手动编写