2回目の処理で情報が表示されない
javaで
CSVファイルに保存されている社員情報を表示・検索・登録・削除する
システムを作っています。
削除以外の機能が作り終わり、結合して実行をかけてみたところ、
社員情報を表示してトップメニューに戻ってからもう一度社員情報を表示しようとすると
社員情報が表示されないという問題が発生しました。
該当のソースコード
java
1import java.io.*; 2import java.util.*; 3public class Employee{ 4 public static void main(String[] args){ 5 try{ 6 File csv = new File("syain.csv"); 7 InputStreamReader isr = new InputStreamReader(System.in); 8 BufferedReader brr = new BufferedReader(isr); 9 BufferedReader br = new BufferedReader(new FileReader(csv)); 10 BufferedWriter bw = new BufferedWriter(new FileWriter(csv, true)); 11 int flag = 0; 12 int nu = 0; 13 while(flag == 0){ 14 System.out.println("####################"); 15 System.out.println("メインメニュー"); 16 System.out.println("####################"); 17 System.out.println(""); 18 System.out.println("1 社員表示"); 19 System.out.println("2 社員検索"); 20 System.out.println("3 社員登録"); 21 System.out.println("4 社員削除"); 22 System.out.println("99 終了"); 23 System.out.println(""); 24 System.out.println("メニュー番号を入力してください"); 25 System.out.print("-->"); 26 String name = brr.readLine(); 27 nu = Integer.parseInt(name); 28 switch(nu){ 29 case 1: 30 int bango[] = new int[1]; 31 String mei[] = new String[1]; 32 System.out.println(); 33 System.out.println("----------"); 34 System.out.println("社員表示"); 35 System.out.println("----------"); 36 System.out.println(); 37 System.out.println("社員情報を表示します"); 38 System.out.println(); 39 System.out.println("社員番号 社員名"); 40 System.out.println("----- ------"); 41 String line = ""; 42 while((line = br.readLine()) != null) 43 { 44 StringTokenizer st = new StringTokenizer(line,","); 45 while(st.hasMoreTokens()) 46 { 47 System.out.print(st.nextToken() + " "); 48 System.out.print(""); 49 } 50 System.out.println(); 51 } 52 //br.close(); 53 break; 54 case 2: 55 int bango2[] = new int[1]; 56 System.out.println(); 57 System.out.println("----------"); 58 System.out.println("社員検索"); 59 System.out.println("----------"); 60 System.out.println(); 61 System.out.println("社員情報を検索して表示します"); 62 System.out.println(); 63 int a = 0; 64 System.out.println("検索する社員番号を入力してください"); 65 System.out.print("-->"); 66 bango2[a] = Integer.parseInt(brr.readLine()); 67 System.out.println(); 68 System.out.println("社員番号 社員名"); 69 System.out.println("----- ------"); 70 String line2 = ""; 71 while((line2 = br.readLine()) != null) 72 { 73 StringTokenizer st = new StringTokenizer(line2,","); 74 String bango3 = st.nextToken(); 75 int bango4 = Integer.parseInt(bango3); 76 if(bango2[a] == bango4) 77 { 78 System.out.print(bango3 + " " + st.nextToken()); 79 System.out.print(""); 80 } 81 System.out.println(); 82 } 83 //br.close(); 84 break; 85 case 3: 86 int bango5[] = new int[1]; 87 String mei2[] = new String[1]; 88 System.out.println(); 89 System.out.println("----------"); 90 System.out.println("社員登録"); 91 System.out.println("----------"); 92 System.out.println(); 93 System.out.println("社員情報を登録します"); 94 System.out.println(); 95 int c = 0; 96 System.out.println("登録する社員番号を入力してください"); 97 System.out.print("-->"); 98 bango5[c] = Integer.parseInt(brr.readLine()); 99 System.out.println("登録する社員名を入力してください"); 100 System.out.print("-->"); 101 mei2[c] = brr.readLine(); 102 bw.write(bango5[c] + "," + mei2[c] + "\r\n"); 103 //bw.close(); 104 System.out.println("社員番号「" + bango5[c] + "」社員名「" + mei2[c] + "」の社員情報を登録しました"); 105 System.out.println(); 106 System.out.println("社員番号 社員名"); 107 System.out.println("----- ------"); 108 String line3 = ""; 109 while((line3 = br.readLine()) != null) 110 { 111 StringTokenizer st = new StringTokenizer(line3,","); 112 while(st.hasMoreTokens()) 113 { 114 System.out.print(st.nextToken() + " "); 115 System.out.print(""); 116 } 117 System.out.println(); 118 } 119 //br.close(); 120 break; 121 case 4: 122 //削除機能(未完成) 123 break; 124 case 99: 125 flag = 1; 126 break; 127 } 128 continue; 129 } 130 }catch(Exception e){ 131 System.out.println(e); 132 } 133} 134}
どのようにしたら、2回目以降の処理でも
名簿情報の表示や検索、登録、削除が行えますでしょうか?
ご質問に、CSVファイルのサンプルも載せたほうが、どこに問題があるのか見つかりやすいかもしれません。
回答1件
あなたの回答
tips
プレビュー