回答編集履歴

2

追記

2021/10/07 23:03

投稿

shiketa
shiketa

スコア4061

test CHANGED
@@ -57,3 +57,53 @@
57
57
 
58
58
 
59
59
  lineがnullになるまで繰り返してから、line.split()を実行している。lineがnullになるまで繰り返しているのだから、「変数lineの中身がnullであったの」です。
60
+
61
+
62
+
63
+ > ファイルパスの階層は正しいのですが、なぜファイルが読み込めないのでしょうか?
64
+
65
+
66
+
67
+ ファイルは開くことができている。そしてファイルの内容はすべて読み込んでいる。ただ、一行読み込んでも、ナニもせずに読み飛ばしているだけなので、ナニも起きていないように見えているだけ。
68
+
69
+
70
+
71
+ ---
72
+
73
+
74
+
75
+ 以下、余計なこと。
76
+
77
+
78
+
79
+ 変数のスコープは狭くしたほうがいい。変数は不変としたほうがいい。というようなことは聞いたことあるかと。だからこんな感じで変数line/dataの定義をwhileループの中に入れたほうがいい。
80
+
81
+
82
+
83
+ ```java
84
+
85
+ //csvを読み込む
86
+
87
+ final FileReader fr = new FileReader(csv);
88
+
89
+ final BufferedReader br = new BufferedReader(fr);
90
+
91
+
92
+
93
+ while(br.ready()) {
94
+
95
+ final String line = br.readLine();
96
+
97
+
98
+
99
+ //lineをカンマで分割し、配列dataに設定
100
+
101
+ //配列の箱に入れるときの変数
102
+
103
+ final String[] data = line.split(",");
104
+
105
+ //...
106
+
107
+ }
108
+
109
+ ```

1

typo

2021/10/07 23:03

投稿

shiketa
shiketa

スコア4061

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- ここに`;`があると、どうなるか考えてみる。
13
+ while文の直後に`;`があると、どうなるか考えてみる。
14
14
 
15
15
 
16
16