ファイルの読み書きの問題を解いています。
・指定のファイルから表を読み込み、以降エンターキーを押すたびにs[i]の文字列を表示させs[12]が表示されたとき指定のファイルに書き込みするプログラムです。
・こちらのコードで実行したら エンターキー2回目に押したとき(NULL と s[2])が表示され、それ以降 s[i]の文字列が2つずつ表示されてしまいます。
・NULLを無くし、s[12]の文字列を1つずつ表示したいのですが何が原因でしょうか?
※NULLの謎は 回答者様のおかげで無事解けました。ありがとうございました。
import java.io.*; class mazedat{ public static void main(String args[]){ File file = new File("maze.dat"); if(!file.exists()){ System.out.print("null"); } try{ FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); String data; while((data = bufferedReader.readLine())!=null){ System.out.println(data); } String s[]= new String[13]; s[1]="*s******\n*. * *\n* * ** *\n* * * *\n* * **\n*** * **\n* * *\n******e*"; s[2]="*s******\n* . * *\n*.* ** *\n* * * *\n* * **\n*** * **\n* * *\n******e*"; s[3]="*s******\n* . * *\n* * ** *\n*.* * *\n* * **\n*** * **\n* * *\n******e*"; s[4]="*s******\n* * *\n* *.** *\n* * * *\n*.* **\n*** * **\n* * *\n******e*"; s[5]="*s******\n* * *\n* * ** *\n* *.* *\n* * **\n*** * **\n* * *\n******e*"; s[6]="*s******\n* * *\n* * ** *\n* * * *\n* *. **\n*** * **\n* * *\n******e*"; s[7]="*s******\n* * *\n* * ** *\n* * * *\n* * . **\n***.* **\n* * *\n******e*"; s[8]="*s******\n* * *\n* * ** *\n* * * *\n* * .**\n*** * **\n* .* *\n******e*"; s[9]="*s******\n* * *\n* * ** *\n* * * *\n* * **\n*** *.**\n* . * *\n******e*"; s[10]="*s******\n* * *\n* * ** *\n* * * *\n* * **\n*** * **\n*. *. *\n******e*"; s[11]="*s******\n* * *\n* * ** *\n* * * *\n* * **\n*** * **\n* * .*\n******e*"; s[12]="*s******\n*... * *\n*.*.** *\n*.*.* *\n*.*...**\n***.*.**\n*...*..*\n******e*"; for(int i = 0; i < s.length; i++){ System.in.read(); System.out.println(s[i]); } File file2 = new File("maze_result.dat"); FileWriter filewriter = new FileWriter(file2); filewriter.write(s[12]); filewriter.close(); bufferedReader.close(); }catch(Exception e){ e.printStackTrace(); } } }
このように処理されます。
C:\practice>java mazedat *s****** * * * * * ** * * * * * * * ** *** * ** * * * ******e* null *s****** *. * * * * ** * * * * * * * ** *** * ** * * * ******e* *s****** * . * * *.* ** * * * * * * * ** *** * ** * * * ******e* *s****** * . * * * * ** * *.* * * * * ** *** * ** * * * ******e* *s****** * * * * *.** * * * * * *.* ** *** * ** * * * ******e* *s****** * * * * * ** * * *.* * * * ** *** * ** * * * ******e* 以降2つずつ表示されます。
回答2件
あなたの回答
tips
プレビュー