如何将文件读入数组

时间:2016-11-07 20:04:38

标签: java arrays

我正在尝试使用下面显示的代码将文件读入数组。我的问题是,我相信在引用我的数组中的元素时,我正在引用空元素,所以我不确定为什么我的文件没有被正确地复制到数组中。文件和代码都在同一个文件中。

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在第二个[]中。是否在文件之间没有创建实例?如何允许从文件中将数据读入数组?

2 个答案:

答案 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. 您希望有两列,
  2. 你在开头读到文件结尾,所以你需要从头开始阅读。

答案 1 :(得分:1)

如果您使用的是Java 8,则可以使用流:

Files.lines(Paths.get(fileName)).toArray(String[]::new);