回答編集履歴
3
コメントと前提知識のページを追加
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
|
-
|
37
|
+
// try-with-resources文でBufferedReader とStream<String>をラッピング。
|
40
38
|
|
41
|
-
|
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
エンコーディングを太文字に
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
|
-
ファイルの文字エンコーディングは
|
3
|
+
ファイルの文字エンコーディングは**Windows-31j**を仮定。
|
4
4
|
|
5
5
|
|
6
6
|
|
1
参考情報のリンクを追加
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)
|