我是新的Java語言,這是我第一次使用掃描儀庫文件。 我敢肯定我防止法空指針發生,但是當我運行爲主,堆棧跟蹤說:在 Big_data_package.sort_test_main.readintoarr(線程「main」顯示java.lang.NullPointerExceptionJava的空指針例外scanner.nextint()
異常sort_test_main.java:22) 在Big_data_package.sort_test_main.main(sort_test_main.java:60)
它發生在nextInt
功能上scanner
方法。 你們能幫我指出我的代碼中的錯誤嗎?非常感謝。
public class sort_test_main{
static File inputfile = new File("E:\\Java_workspace\\Big_Data_Sort\\io\\input.txt");
static mergeSort merge = new mergeSort();
static Scanner scanner;
static int[] inputarr;
public static int[] readintoarr (int[] list, Scanner scanner) throws IOException{
int i = 0;
boolean endfile = false;
scanner = new Scanner(inputfile);
while(!endfile)
{
if(scanner.hasNextInt()){
list[i++] = scanner.nextInt();
}
else{
endfile = true;
}
}
scanner.close();
return list;
}// end of readintoarr
public static void arrtofile (int[]x) throws IOException{
File file = new File("E:\\Java_workspace\\Big_Data_Sort\\io\\output.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
BufferedWriter outputWriter = null;
outputWriter = new BufferedWriter(new FileWriter(file));
for (int i = 0; i < x.length; i++) {
// Maybe:
outputWriter.write(x[i]+"");
// Or:
outputWriter.write(Integer.toString(x[i]));
outputWriter.newLine();
}
outputWriter.flush();
outputWriter.close();
}//end of arrtofile
//test
public static void main(String[] args)throws IOException {
readintoarr(inputarr,scanner);
merge.mergeSort1(inputarr,0,inputarr.length);
arrtofile(inputarr);
}}
你是怎麼稱呼這個方法的? 'list'爲空嗎? –
我想通過讀取文件來填充數組,並且我調用下面主要方法的方法 – grahmada
'static int [] inputarr;'相當於'static int [] inputarr = null;' –