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)」があり、各ファイルには必要な座標があります。配列リストはそれを達成するための最良の方法ですか?ファイルを読み込んで各ファイルの整数を配列リストに割り当てる方法は?
あなたはarraylistsを格納するための配列を作成しました。あなたはまだ実際にarraylists *を作成していません。 –
しかし、あなたは5つの配列リストを作成していません。あなたは配列リストを作成していません。あなたが作成したのは、配列リストの型の長さが5の空の配列です。 – azurefrog