この記事では、java8 Stream APIを使ってファイルを一行ずつ読み込んだり、特定の条件に基づいてファイルの内容をフィルタリングしたりする方法を紹介します。
ファイルを一行ずつ読み込むJava8
この例では、ファイルの内容を一行ずつ読み込んで、その出力をコンソールに表示します。
Path filePath = Paths.get("c:/temp", "data.txt");
//try-with-resources構文、ストリームを手動でコード化する必要はない。
try (Stream<String> lines = Files.lines( filePath ))
{
lines.forEach(System.out::println);
}
catch (IOException e)
{
e.printStackTrace();//これは単なるテストケースであり、実運用では行わないこと。
}
上記のプログラム出力は、ファイルの内容を一行ずつコンソールに表示します。
Never
store
password
except
in mind.
Java 8 ファイルの読み取り - 行のフィルタリング
この例では、ファイルの内容がストリームとして読み込まれ、"password "という単語を含むすべての行がフィルタリングされます。
Path filePath = Paths.get("c:/temp", "data.txt");
try (Stream<String> lines = Files.lines(filePath)){
List<String> filteredLines = lines
.filter(s -> s.contains("password"))
.collect(Collectors.toList());
filteredLines.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();//これは単なるテストケースであり、実運用では行わないこと。
}
プログラムの出力。
パスワードは、指定されたファイルの内容を読み込み、"password "という単語を含む行があるかどうかをチェックし、それを出力します。
Java 7 - FileReaderを使用したファイルの読み取り
Java 7バージョンでは、FileReaderを使用してファイルを1行ずつ読み取ることができます。
password
- この記事はクレジットを得て転載しています。