回答編集履歴

3

コメントと前提知識のページを追加

2017/12/12 11:19

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -32,17 +32,23 @@
32
32
 
33
33
  File kensaku = new File("C:\Users\Owner\Downloads\indices_I101.csv");
34
34
 
35
- try (BufferedReader br = Files.newBufferedReader(Paths.get(kensaku.toURI()), Charset.forName("Windows-31j"))) {
36
35
 
37
- try (Stream<String> lines = br.lines()) {
38
36
 
39
- lines.filter(line -> line.startsWith(search_key)).forEach(line -> {
37
+ // try-with-resources文でBufferedReader とStream<String>をラッピング。
40
38
 
41
- System.out.println(line);
39
+ try (BufferedReader br = Files.newBufferedReader(Paths.get(kensaku.toURI()), Charset.forName("Windows-31j"));
42
40
 
43
- });
41
+ Stream<String> lines = br.lines()) {
44
42
 
43
+ // Stream#filterで指定された以下の条件に一致するストリームを返し、forEachで列挙。
44
+
45
+ // 条件:line.startsWithを使用して読み込み行の接頭辞が2017-11-30で始まるかどうかを判定
46
+
47
+ lines.filter(line -> line.startsWith(search_key)).forEach(line -> {
48
+
49
+ System.out.println(line);
50
+
45
- }
51
+ });
46
52
 
47
53
  }
48
54
 
@@ -59,3 +65,35 @@
59
65
  [BufferedReader#lines](https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedReader.html#lines--)
60
66
 
61
67
  [Stream](https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Stream.html)
68
+
69
+
70
+
71
+
72
+
73
+ ---
74
+
75
+ 2017年12月12日追記
76
+
77
+ swordoneさんへ
78
+
79
+ 回答を修正致しました。コード指摘ありがとうございました。
80
+
81
+
82
+
83
+ 0424_404さんへ
84
+
85
+ 回答のソースコードにコメント行を追記致しました。
86
+
87
+ □コードを読むための前提知識
88
+
89
+ 1,[try-with-resources文](https://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html)
90
+
91
+ 2,[アロー演算子 ->](https://builder.japan.zdnet.com/sp_oracle/35054414/3/)
92
+
93
+ □ストリームの流れ。
94
+
95
+ ||||||
96
+
97
+ |:--|:--:|--:|--:|--:|
98
+
99
+ |br.lines()|=>|filter|=>|forEach|

2

エンコーディングを太文字に

2017/12/12 11:19

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -1,6 +1,6 @@
1
1
  Stream APIと[String#startsWith](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#startsWith-java.lang.String-)を使った方法です。
2
2
 
3
- ファイルの文字エンコーディングはWindows-31jを仮定。
3
+ ファイルの文字エンコーディングは**Windows-31j**を仮定。
4
4
 
5
5
 
6
6
 

1

参考情報のリンクを追加

2017/12/10 16:44

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -51,3 +51,11 @@
51
51
  }
52
52
 
53
53
  ```
54
+
55
+ □参考情報
56
+
57
+ [Files#newBufferedReader](https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Files.html#newBufferedReader-java.nio.file.Path-java.nio.charset.Charset-)
58
+
59
+ [BufferedReader#lines](https://docs.oracle.com/javase/jp/8/docs/api/java/io/BufferedReader.html#lines--)
60
+
61
+ [Stream](https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/Stream.html)