ストリームは、やっぱり便利。
Files.linesを使って、テキストファイルを読み込むサンプル
Files.linesを使って、テキストファイルを読み込みます。
 また、読み込んだテキストから、「イーハトーヴォ」を含む行だけに絞り込んだ後、リストに格納。
 リストの中身を標準出力します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; public class FilesLinesTest {     public static void main(String[] args) throws IOException {         //ファイル         Path path = Paths.get("c:\\work\\in.txt");         //「イーハトーヴォ」を含む行を抽出して、一度リストへ。         List<String> list = Files.lines(path)                             .filter(t -> t.indexOf("イーハトーヴォ") != -1)                             .collect(Collectors.toList());         //リストを出力         list.forEach(System.out::println);     } } | 
実行結果
読み込んだテキストファイルから「イーハトーヴォ」を含む行が出力されます。
| 1 2 | あのイーハトーヴォのすきとおった風、 (以下略) | 
サンプルの解説
Files.lines(Path)を使うと、Stream
 あとは、ストリーム操作です。
ストリームのまま出力しても良かったのですが、とりあえず一旦Listで受けてみました。












