gpt4 book ai didi

java - 如何读取文件,然后将每个文件整数分配给数组列表?

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:04 25 4
gpt4 key购买 nike

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class NotWorking {
public static void main(String[] args) throws Exception{
// The files that I need to open
// They contain integers (points on a graph)
// Ex: 74 0 80 100 150 60 150
String[] names = {"Test.txt", "Test2.in", "test3.in", "Test4.in", "Test5.in"};
// Create 5 list
ArrayList<Integer>[] textFiles = new ArrayList[5];

// for loop through each file
for (int i = 0; i < names.length; i++) {
Scanner scanner;
// open file
scanner = new Scanner(new File(names[i]));
// @fileNumber is one of 5 list
int fileNumber = 0;
// add each integer to the correct list
while (scanner.hasNextInt()){
// line below this is where it says NullPointer Exception
textFiles[fileNumber].add(scanner.nextInt());
}enter code here
// Trying to see if lists are made correctly and also increasing fileNumber after
// each file is processed
System.out.println(textFiles[fileNumber]);
fileNumber ++;
}
}
}

我需要打开以数组形式给出的文件(.txt 和 .in)。我使用 for 循环来遍历它们,然后打开它们,但当我阅读它们时,我想使用它们中的数据。所以我的想法是创建 5 个数组列表并将数据放入其中。但我似乎无法弄清楚。它一直给我 NullPointer 异常。另外,我需要能够将数据放入另一种方法中。一个例子是“Quad(ax, ay, bx, by, cx, cy, dx, dy)”,每个文件都有我需要的坐标。数组列表是实现它的最佳方法吗?

最佳答案

在使用数组列表之前,您需要为其分配内存。

这就是它抛出 NullPointerException 的原因,因为 textFiles[0],... 为 null,并且您试图对 null 执行操作!

textFiles[fileNumber] = new ArrayList<Integer>();  
// call constructor as above to allocate memory to each individual arraylists.
while (scanner.hasNextInt()){
textFiles[fileNumber].add(scanner.nextInt());
}

关于java - 如何读取文件,然后将每个文件整数分配给数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com