スレッドの例外 'main' java.lang.NumberFormatException:null



Exception Threadmainjava



スレッド「メイン」の例外java.lang.NumberFormatException:null
java.base / java.lang.Integer.parseInt(Integer.java:620)で
java.base / java.lang.Integer.parseInt(Integer.java:776)で
App14_1.main(App14_1.java:20)で

エラーjava.lang.NumberFormatException:プログラムの実行時にnull、
私はいつもそれがパラメータを渡すことだと思っていました 型変換エラー 、情報を読むことで、 パラメータを取得できません (ヌル)!



エラーの場所は次のとおりです。

int[] num2 = new int[15] for(int i=0i<15i++){ num2[i]=Integer.parseInt(in.readLine()) //error } import java.io.* import java.util.Arrays public class App14_1 { public static void main(String[] args) throws IOException { try ( BufferedReader in=new BufferedReader(new FileReader('F:/Java/aahh.txt')) BufferedWriter out = new BufferedWriter(new FileWriter('F:/Java/aahh.txt')) ) { int[] num1 = new int[15] for (int i = 0 i < num1.length i++){ num1[i] = (int) (Math.random() * 9979 + 20) out.write(num1[i]+'') out.newLine() } // out.close() key statement to solve the problem int[] num2 = new int[15] for(int i=0i<15i++){ num2[i]=Integer.parseInt(in.readLine()) } Arrays.sort(num2) for (int d : num2) System.out.println(d) } } }

問題を解く:

バッファリングされた文字出力ストリームがファイルに書き込まれた後、ストリームは閉じられないため、入力ストリームは読み取り不能になります。
in.readLine()を出力して証明することもできます パラメータを読み取れません
画像
そう ストリームを閉じるステートメントを追加します 、 問題は解決しました。



概要

1、java.lang.NumberFormatException:null、パラメーターを渡すことができます 型変換エラー 、することもできます パラメータを取得できません (ヌル)!

2ペア 同じファイル 乗る 読み取りおよび書き込み操作 途中でストリームを閉じるか、配列変数を使用してデータを保存して渡す必要があります。 (リソースステートメントを自動的に閉じ、tryステートメントの終了後にリソースを閉じます)