- 締切済み
Java ファイルへの保存(書き込み)方法について
登録内容をCSVファイルへ保存する機能を実装したプログラムを作成したいんですが、作成方法が分かりません。 【実装させたい機能】 ・「1.登録」で会員情報を登録後、「3.保存」を実行する事でCSV形式のファイルへ保存(書込)させたい。 ・CSVファイルの中身は、「JAVA0001 , 鈴木一郎 , 1999/01/01 , 090-1111-1111」のようなカンマ区切りのCSV形式で会員情報が表示される。 【現在の状況】 ・デスクトップにKaiinフォルダを作成し、その中に「Kaiin.java」と「KaiinSystem.java」の2個ファイルを作成。(2ファイルは連動しています) ・コマンドプロンプトで、「KaiinSystem.java」のほうをコンパイル実行。 ・下記メニュー画面が表示されます。 --------------------------------------- ◆メニュー番号を選択してください。 1.登録 2.照会 3.保存 4.終了 ・メニュー番号 >> ----------------------------------------- ・メニュー番号に1を入力実行し会員を登録します。登録後は下記画面のようになります。 ----------------------------------- [会員番号]JAVA0001 [名前]鈴木一郎 [生年月日]1999/01/01 [電話番号]090-1111-1111 ----------------------------------- ・登録後、「5.保存」を実行すると、下記画面のエラーメッセージが表示されうまく保存(ファイルへ書込)ができません。 ---------------------------------------------------------------------- 会員情報を保存しました。 Exception in thread "main" java.lang.NullPointerException at kaiin.KaiinSystem.procSav(KaiinSystem.java:119) at kaiin.KaiinSystem.main(KaiinSystem.java:59) ---------------------------------------------------------------------- 【質問】 どのように修正を行えば、ファイルへ保存出来ますか?(登録情報が保存されますか?) コンパイル実行は可能で、5.保存を実行すると【現在の状況】で記載しましたエラーメッセージは表示されますが、一応CSVファイルは作成されます。(ただし中身は登録情報が保存されてなく空白状態です。) 下記に<KaiinSystem.java>のほうのソースコードを貼り付けましたので、教えて頂けると助かります。宜しくお願いします。 ※文字制限の為、ソースコードは保存とエラーが表示されている部分(59行目と119行目)のみ抜粋して貼り付けました。 <Kaiin.java>のほうのソースコードは下記リンク先のNo1の下の「この回答への補足」に貼り付けております。 http://okwave.jp/qa/q7868550.html ちなみに、「この回答へのお礼」に<KaiinSystem.java>も貼り付けられていますが、色々修正しており現在は全体的に全く違うソースコードになっています。<Kaiin.java>は現在と変わらないです。 <KaiinSystem.java> ----------------------------------------------------- ・・・ case MENU_SAV://保存処理 System.out.println("会員情報を保存しました。"); ks.procSav(); //←エラー(1)59行目 ・・・ //3.保存 private void procSav(){ try { PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("Kaiin.csv"))); int i = 0; writer.println(kinList.get(i).toCsvFormat()); //エラー(2)119行目 for (i = 0; i < kinList.size(); i++){ } writer.close(); } catch (IOException e) { System.out.println(e); } } ・・・
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- racene
- ベストアンサー率70% (21/30)
ぬるぽが出ているので、 kinList.get(0) がnullを返している可能性が高いです。 kinList自体がnullな可能性もありますが。 kinListが想定した通りになっているか確かめてみましょう。