我正在尝试使用下面显示的代码将文件读入数组。我的问题是,我相信在引用我的数组中的元素时,我正在引用空元素,所以我不确定为什么我的文件没有被正确地复制到数组中。文件和代码都在同一个文件中。
int column = 0;
int arraySize = 0;
String fileName = "SuperBowlWinners.txt";
File file = new File(fileName);
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext()) {
inputFile.nextLine();
arraySize++;
}
String[][] superBowl = new String[arraySize][1];
while (inputFile.hasNext()) {
for (int index = 0; index < superBowl.length; index++) {
superBowl[index][0] = inputFiles.next();
superBowl[index][1] = inputFiles.nextLine();
}
}
第一个while循环用于确定数组大小,我需要两列,这就是为什么1在第二个[]中。是否在文件之间没有创建实例?如何允许从文件中将数据读入数组?
答案 0 :(得分:1)
String[][] superBowl = new String[arraySize][1];
while (inputFile.hasNext()) {
for (int index = 0; index < superBowl.length; index++) {
superBowl[index][0] = inputFiles.next();
superBowl[index][1] = inputFiles.nextLine();
}
}
嗯......上面的代码需要更新。
String[][] superBowl = new String[arraySize][2];
file = new File(fileName);
inputFile = new Scanner(file);
while (inputFile.hasNext()) {
for (int index = 0; index < superBowl.length; index++) {
superBowl[index][0] = inputFiles.next();
superBowl[index][1] = inputFiles.nextLine();
}
}
这是因为:
答案 1 :(得分:1)
如果您使用的是Java 8,则可以使用流:
Files.lines(Paths.get(fileName)).toArray(String[]::new);