blog

java8のStreamを使って、テキスト・ファイルを行ごとに処理する。

この記事では、FileReaderを使ってファイルを一行ずつ読み、特定の条件に基づいてファイルの内容をフィルタリングする方法を紹介します。 Java 8 ファイルを一行ずつ読み込む この例では、ファイ...

Mar 29, 2020 · 2 min. read
シェア

この記事では、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
  • この記事はクレジットを得て転載しています。

Read next

このJDKのソースコード解析は、本当に詳しく書かれているので、何度も見ることをお勧めする!

1.一般 このメソッドを呼び出すと、現在の文字数がchar配列のサイズより小さい場合、縮小して配列のコピーを開始します。余分な領域を解放するには、String コンストラクタを呼び出して部分文字列をインターセプトします。 パラメータの型が異なるだけで、ほとんど同じです。元のvalue[]の実際のカウントの最後に直接リンクします。

Mar 29, 2020 · 8 min read

todoList

Mar 29, 2020 · 3 min read

Numpy配列

Mar 29, 2020 · 18 min read