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

回答編集履歴

2

追記

2021/10/07 23:03

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -27,4 +27,29 @@
27
27
  data = line.split(",");
28
28
  ```
29
29
 
30
- lineがnullになるまで繰り返してから、line.split()を実行している。lineがnullになるまで繰り返しているのだから、「変数lineの中身がnullであったの」です。
30
+ lineがnullになるまで繰り返してから、line.split()を実行している。lineがnullになるまで繰り返しているのだから、「変数lineの中身がnullであったの」です。
31
+
32
+ > ファイルパスの階層は正しいのですが、なぜファイルが読み込めないのでしょうか?
33
+
34
+ ファイルは開くことができている。そしてファイルの内容はすべて読み込んでいる。ただ、一行読み込んでも、ナニもせずに読み飛ばしているだけなので、ナニも起きていないように見えているだけ。
35
+
36
+ ---
37
+
38
+ 以下、余計なこと。
39
+
40
+ 変数のスコープは狭くしたほうがいい。変数は不変としたほうがいい。というようなことは聞いたことあるかと。だからこんな感じで変数line/dataの定義をwhileループの中に入れたほうがいい。
41
+
42
+ ```java
43
+ //csvを読み込む
44
+ final FileReader fr = new FileReader(csv);
45
+ final BufferedReader br = new BufferedReader(fr);
46
+
47
+ while(br.ready()) {
48
+ final String line = br.readLine();
49
+
50
+ //lineをカンマで分割し、配列dataに設定
51
+ //配列の箱に入れるときの変数
52
+ final String[] data = line.split(",");
53
+ //...
54
+ }
55
+ ```

1

typo

2021/10/07 23:03

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -4,7 +4,7 @@
4
4
  data = line.split(",");
5
5
  ```
6
6
 
7
- ここに`;`があると、どうなるか考えてみる。
7
+ while文の直後に`;`があると、どうなるか考えてみる。
8
8
 
9
9
  フォーマットすると、こうなる。
10
10