抜粋の中の以下の行でNullPointerExceptionが発生してしまいます。
きちんとwhile
文でチェックしているはずですが、なぜでしょうか。
random_number[i] = int(tmp_number);
以下は抜粋です。
Processing
1 reader_number = createReader("random_number.txt"); 2 if(reader_number == null){ 3 createWriter("random_number.txt"); 4 } 5 try{ 6 int i = 0; 7 String tmp_number; 8 while((tmp_number = reader_number.readLine()) != null){ 9 println(tmp_number); 10 random_number[i] = int(tmp_number); 11 i++; 12 } 13 reader_number.close(); 14 }catch (IOException e) { 15 println("ファイル初期化エラー(random_number.txt)"); 16 println(e); 17 } 18} 19
以下がrandom_number.txt
の内容です。
200 150
以下はほぼ全行です。
Processing
1final int window_size = 400; //画面サイズ 2 3float pi_number; //円周率 4int[] random_number; //生成したランダムな数字 5 6//ファイル保存関連 7BufferedReader reader_pi; 8BufferedReader reader_number; 9 10void setup(){ 11 initialize_file(); 12 initialize_window(); 13 size(400,400); 14} 15 16void initialize_window(){ 17 background(255); 18 stroke(0); 19 strokeWeight(4); 20 ellipse(window_size/2,window_size/2,window_size,window_size); 21 //ファイルに保存済みの点を描画 22 if(random_number != null){ 23 for(int i=0;i<random_number.length;i++){ 24 int x = 0, y = 0; 25 if(i/2 == 0){ 26 x = i; 27 }else{ 28 y = i; 29 ellipse(x,y,2,2); 30 } 31 } 32 } 33} 34 35void initialize_file(){ 36 reader_pi = createReader("pi.txt"); 37 if(reader_pi == null){ 38 createWriter("pi.txt"); 39 } 40 try{ 41 if(reader_pi.ready()){ 42 pi_number = float(reader_pi.readLine()); 43 } 44 reader_pi.close(); 45 }catch (IOException e) { 46 println("ファイル初期化エラー(pi.txt)"); 47 println(e); 48 } 49 50 reader_number = createReader("random_number.txt"); 51 if(reader_number == null){ 52 createWriter("random_number.txt"); 53 } 54 try{ 55 int i = 0; 56 String tmp_number; 57 while((tmp_number = reader_number.readLine()) != null){ 58 println(tmp_number); 59 random_number[i] = int(tmp_number); 60 i++; 61 } 62 reader_number.close(); 63 }catch (IOException e) { 64 println("ファイル初期化エラー(random_number.txt)"); 65 println(e); 66 } 67} 68 69float number_make(){ 70 return random(0,window_size); 71}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/16 09:12