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

質問編集履歴

2

不正削除対応

2018/02/13 01:48

投稿

kojima_desuyo
kojima_desuyo

スコア8

title CHANGED
@@ -1,1 +1,1 @@
1
- JAVAJAVAJAVA
1
+ JAVAでCSVファイルの一部削除
body CHANGED
@@ -1,1 +1,85 @@
1
+ ### 実現したいこと
2
+ javaで
3
+ CSVファイルに保存されている社員情報を削除するシステムを作っています。
4
+ 入力した社員番号の情報のみを削除したいのですが
5
+ 今のソースコードですと全ての情報が削除されてしまうという問題が発生しました。
6
+ ### 該当のソースコード
7
+ ```java
8
+ import java.io.*;
9
+ import java.util.*;
10
+ public class syainsakujo{
11
+ public static void main(String[] args){
12
+ try{
13
+ File csv = new File("syain2.csv");
14
+ InputStreamReader isr = new InputStreamReader(System.in);
15
+ BufferedReader brr = new BufferedReader(isr);
16
+ BufferedReader br = new BufferedReader(new FileReader(csv));
17
+ BufferedWriter bw = new BufferedWriter(new FileWriter(csv, true));
18
+ PrintWriter bww = new PrintWriter(new BufferedWriter(new FileWriter("syain2.csv")));
19
+ int bango[] = new int[1];
20
+ int a = 0;
21
+ System.out.println();
22
+ System.out.println("----------");
23
+ System.out.println("社員削除");
24
+ System.out.println("----------");
25
+ System.out.println();
26
+ System.out.println("社員情報を削除します");
27
+ System.out.println();
28
+ System.out.println("削除する社員番号を入力してください");
29
+ System.out.print("-->");
30
+ bango[a] = Integer.parseInt(brr.readLine());
31
+ String line = "";
32
+ String str = null;
33
+ while((line = br.readLine()) != null)
34
+ {
35
+ StringTokenizer st = new StringTokenizer(line,",");
1
- JavaJAVAJAVAJAVAJAVAJAVAJAVAJAVA
36
+ String bango2 = st.nextToken();
37
+ int bango3 = Integer.parseInt(bango2);
38
+ if(bango[a] == bango3){
39
+ bww.println(line);
40
+ }
41
+ }
42
+ br.close();
43
+ bw.close();
44
+ System.out.println("社員番号「" + bango[a] + "」の社員情報を削除しました");
45
+ System.out.println();
46
+ System.out.println("社員番号     社員名");
47
+ System.out.println("-----      ------");
48
+ while((line = br.readLine()) != null)
49
+ {
50
+ StringTokenizer st = new StringTokenizer(line,",");
51
+ while(st.hasMoreTokens())
52
+ {
53
+ System.out.print(st.nextToken() + "      ");
54
+ System.out.print("");
55
+ }
56
+ System.out.println();
57
+ }
58
+ br.close();
59
+ }catch(Exception e){
60
+ System.out.println(e);
61
+ }
62
+ }
63
+ }
64
+ ```
65
+ ### こうなってほしいという結果
66
+ 現時点でCSVファイルの内容が、
67
+ 100001,さんま
68
+ 100002,浜田
69
+ 100003,松本
70
+ 100004,今田
71
+ 100005,岡村
72
+ 100006,矢部
73
+ 100007,東野
74
+ で、
75
+ 例えば100002の情報を削除したいとして、
76
+ 削除する社員番号を入力するときに、
77
+ 100002を入力して結果(CSVを更新)が
78
+ 100001,さんま
79
+ 100003,松本
80
+ 100004,今田
81
+ 100005,岡村
82
+ 100006,矢部
83
+ 100007,東野
84
+ になるようにしたいです。
85
+ ご回答お願い致します。

1

JAVA

2018/02/13 01:48

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- JAVAでCSVファイルの一部削除
1
+ JAVAJAVAJAVA
body CHANGED
@@ -1,94 +1,1 @@
1
- ### 実現したいこと
2
- javaで
3
- CSVファイルに保存されている社員情報を削除するシステムを作っています。
4
- 入力した社員番号の情報のみを削除したいのですが
5
- 今のソースコードですと全ての情報が削除されてしまうという問題が発生しました。
6
-
7
- ### 該当のソースコード
8
-
9
- ```java
10
- import java.io.*;
11
- import java.util.*;
12
-
13
- public class syainsakujo{
14
- public static void main(String[] args){
15
- try{
16
- File csv = new File("syain2.csv");
17
- InputStreamReader isr = new InputStreamReader(System.in);
18
- BufferedReader brr = new BufferedReader(isr);
19
- BufferedReader br = new BufferedReader(new FileReader(csv));
20
- BufferedWriter bw = new BufferedWriter(new FileWriter(csv, true));
21
- PrintWriter bww = new PrintWriter(new BufferedWriter(new FileWriter("syain2.csv")));
22
-
23
- int bango[] = new int[1];
24
- int a = 0;
25
-
26
- System.out.println();
27
- System.out.println("----------");
28
- System.out.println("社員削除");
29
- System.out.println("----------");
30
- System.out.println();
31
- System.out.println("社員情報を削除します");
32
- System.out.println();
33
- System.out.println("削除する社員番号を入力してください");
34
- System.out.print("-->");
35
- bango[a] = Integer.parseInt(brr.readLine());
36
- String line = "";
37
- String str = null;
38
- while((line = br.readLine()) != null)
39
- {
40
- StringTokenizer st = new StringTokenizer(line,",");
41
- String bango2 = st.nextToken();
1
+ JavaJAVAJAVAJAVAJAVAJAVAJAVAJAVA
42
- int bango3 = Integer.parseInt(bango2);
43
- if(bango[a] == bango3){
44
- bww.println(line);
45
- }
46
- }
47
- br.close();
48
- bw.close();
49
-
50
- System.out.println("社員番号「" + bango[a] + "」の社員情報を削除しました");
51
- System.out.println();
52
- System.out.println("社員番号     社員名");
53
- System.out.println("-----      ------");
54
-
55
- while((line = br.readLine()) != null)
56
- {
57
- StringTokenizer st = new StringTokenizer(line,",");
58
- while(st.hasMoreTokens())
59
- {
60
- System.out.print(st.nextToken() + "      ");
61
- System.out.print("");
62
- }
63
- System.out.println();
64
- }
65
- br.close();
66
- }catch(Exception e){
67
- System.out.println(e);
68
- }
69
- }
70
- }
71
- ```
72
-
73
- ### こうなってほしいという結果
74
- 現時点でCSVファイルの内容が、
75
- 100001,さんま
76
- 100002,浜田
77
- 100003,松本
78
- 100004,今田
79
- 100005,岡村
80
- 100006,矢部
81
- 100007,東野
82
- で、
83
- 例えば100002の情報を削除したいとして、
84
- 削除する社員番号を入力するときに、
85
- 100002を入力して結果(CSVを更新)が
86
- 100001,さんま
87
- 100003,松本
88
- 100004,今田
89
- 100005,岡村
90
- 100006,矢部
91
- 100007,東野
92
- になるようにしたいです。
93
-
94
- ご回答お願い致します。