回答編集履歴
6
補足
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
```
|
4
4
|
を`while`文の上で宣言していて。
|
5
5
|
各処理でファイルの次の行を読み取る処理`br#readline()`を行っている箇所はありますが、
|
6
|
-
ファイルの先頭行から読み直す処理(`br#reset() `など)が無いので正常な動作だと思いますが。。。
|
6
|
+
ファイルの先頭行から読み直す処理(`br#reset() `など)が無いのでファイルを最後まで読み切ったら、次`br#readline()`を行っても読むデータが無いのでデータが表示されないのは正常な動作だと思いますが。。。
|
7
7
|
|
8
8
|
■問題点
|
9
9
|
1,変数brを各処理で使いまわしている。面倒でも各処理でスコープを1個切って以下のようにすれば問題は発生しないはずです。
|
5
追記
answer
CHANGED
@@ -2,23 +2,33 @@
|
|
2
2
|
BufferedReader br = new BufferedReader(new FileReader(csv));
|
3
3
|
```
|
4
4
|
を`while`文の上で宣言していて。
|
5
|
-
各処理で`br#readline()`
|
5
|
+
各処理でファイルの次の行を読み取る処理`br#readline()`を行っている箇所はありますが、
|
6
|
-
ファイルの先頭行から読み直す処理(`br#reset() `など
|
6
|
+
ファイルの先頭行から読み直す処理(`br#reset() `など)が無いので正常な動作だと思いますが。。。
|
7
7
|
|
8
8
|
■問題点
|
9
9
|
1,変数brを各処理で使いまわしている。面倒でも各処理でスコープを1個切って以下のようにすれば問題は発生しないはずです。
|
10
10
|
```
|
11
11
|
{//←ブロックスコープを切る
|
12
12
|
BufferedReader br = new BufferedReader(new FileReader(csv));
|
13
|
-
// case文で行っていること。
|
13
|
+
// 各case文で行っていること。
|
14
14
|
}
|
15
15
|
```
|
16
16
|
2,`main`メソッドという一つのメソッド内で一覧表示、検索、登録と処理を行いすぎです。。
|
17
17
|
そのため、どの機能が原因で今回のバグが発生したのかの問題の切り分けが不可能な状態になりやすいです。
|
18
18
|
このソースコードを読む人のために機能単位にまず関数を作成しましょう。
|
19
|
+
|
19
20
|
3,ファイルの`close`忘れを防ぐために`try~with~resources`文を使ってくださいな。
|
20
21
|
```Java
|
21
22
|
try(BufferedReader br = new BufferedReader(new FileReader(csv))) {
|
22
23
|
// やりたいこと。
|
23
24
|
}
|
24
|
-
```
|
25
|
+
```
|
26
|
+
|
27
|
+
4,例外が発生した時は標準出力`System.out`ではなく、`System.err`に出力してくださいな。
|
28
|
+
|
29
|
+
■補足
|
30
|
+
質問する時は
|
31
|
+
1,問題を再現させるための手順を詳しく記載してくださいな。
|
32
|
+
2,「期待される結果」を質問文に記載してくださいな。
|
33
|
+
3,プログラム内ファイルを使用しているなら、ファイルのサンプルデータも追記してくださいな。
|
34
|
+
要望が多いですが、明確な質問だと返答も速く帰ってきます。
|
4
補足
answer
CHANGED
@@ -7,11 +7,12 @@
|
|
7
7
|
|
8
8
|
■問題点
|
9
9
|
1,変数brを各処理で使いまわしている。面倒でも各処理でスコープを1個切って以下のようにすれば問題は発生しないはずです。
|
10
|
-
|
10
|
+
```
|
11
|
+
{//←ブロックスコープを切る
|
11
12
|
BufferedReader br = new BufferedReader(new FileReader(csv));
|
12
13
|
// case文で行っていること。
|
13
14
|
}
|
14
|
-
|
15
|
+
```
|
15
16
|
2,`main`メソッドという一つのメソッド内で一覧表示、検索、登録と処理を行いすぎです。。
|
16
17
|
そのため、どの機能が原因で今回のバグが発生したのかの問題の切り分けが不可能な状態になりやすいです。
|
17
18
|
このソースコードを読む人のために機能単位にまず関数を作成しましょう。
|
3
追記
answer
CHANGED
@@ -6,8 +6,11 @@
|
|
6
6
|
ファイルの先頭行から読み直す処理(`br#reset() `などの)が無いので正常な動作だと思いますが。。。
|
7
7
|
|
8
8
|
■問題点
|
9
|
-
1,変数brを各処理で使いまわしている。面倒でも各処理で以下のようにすれば問題は発生しないはずです。
|
9
|
+
1,変数brを各処理で使いまわしている。面倒でも各処理でスコープを1個切って以下のようにすれば問題は発生しないはずです。
|
10
|
+
{
|
10
|
-
BufferedReader br = new BufferedReader(new FileReader(csv));
|
11
|
+
BufferedReader br = new BufferedReader(new FileReader(csv));
|
12
|
+
// case文で行っていること。
|
13
|
+
}
|
11
14
|
|
12
15
|
2,`main`メソッドという一つのメソッド内で一覧表示、検索、登録と処理を行いすぎです。。
|
13
16
|
そのため、どの機能が原因で今回のバグが発生したのかの問題の切り分けが不可能な状態になりやすいです。
|
2
try~with~resources
answer
CHANGED
@@ -6,9 +6,15 @@
|
|
6
6
|
ファイルの先頭行から読み直す処理(`br#reset() `などの)が無いので正常な動作だと思いますが。。。
|
7
7
|
|
8
8
|
■問題点
|
9
|
-
1,変数brを各処理で使いまわしている。面倒でも以下のようにすれば問題は発生しないはずです。
|
9
|
+
1,変数brを各処理で使いまわしている。面倒でも各処理で以下のようにすれば問題は発生しないはずです。
|
10
10
|
BufferedReader br = new BufferedReader(new FileReader(csv));
|
11
11
|
|
12
12
|
2,`main`メソッドという一つのメソッド内で一覧表示、検索、登録と処理を行いすぎです。。
|
13
13
|
そのため、どの機能が原因で今回のバグが発生したのかの問題の切り分けが不可能な状態になりやすいです。
|
14
|
-
このソースコードを読む人のために機能単位にまず関数を作成しましょう。
|
14
|
+
このソースコードを読む人のために機能単位にまず関数を作成しましょう。
|
15
|
+
3,ファイルの`close`忘れを防ぐために`try~with~resources`文を使ってくださいな。
|
16
|
+
```Java
|
17
|
+
try(BufferedReader br = new BufferedReader(new FileReader(csv))) {
|
18
|
+
// やりたいこと。
|
19
|
+
}
|
20
|
+
```
|
1
補足
answer
CHANGED
@@ -3,9 +3,8 @@
|
|
3
3
|
```
|
4
4
|
を`while`文の上で宣言していて。
|
5
5
|
各処理で`br#readline()`している箇所はありますが、
|
6
|
-
`br#reset() `
|
6
|
+
ファイルの先頭行から読み直す処理(`br#reset() `などの)が無いので正常な動作だと思いますが。。。
|
7
7
|
|
8
|
-
|
9
8
|
■問題点
|
10
9
|
1,変数brを各処理で使いまわしている。面倒でも以下のようにすれば問題は発生しないはずです。
|
11
10
|
BufferedReader br = new BufferedReader(new FileReader(csv));
|