teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

不正削除対応

2018/02/13 01:50

投稿

kojima_desuyo
kojima_desuyo

スコア8

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

1

JAVA

2018/02/13 01:50

投稿

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