java 8 Streamストリームプログレッシブテキストファイル


本論文では、Java 8 Stream APIを使ってファイルを逐次読み取り、いくつかの条件に応じてファイルの内容をフィルタリングすることを紹介します。
1.Java 8行ごとにファイルを読み込みます。
この例では、行ごとにファイルの内容を読み取り、コンソールで出力します。

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();//      ,              
}
上のプログラム出力はコンソールでファイルの内容を1行ずつ印刷します。
ネバー
store
password
except
mind.
2.Java 8ファイルCフィルタリング行を読み込む
この例では、ファイルの内容をStreamとして読み出す。その後、単語「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
与えられたファイルの内容を読み取り、「password」を含む行があるかどうかを確認して印刷します。
3.Java 7 CはFileReaderを使ってファイルを読み込みます。
Java 7の前のバージョンでは、FileReader方式を使ってファイルを1行ずつ読み込むことができます。

private static void readLinesUsingFileReader() throws IOException 
{
  File file = new File("c:/temp/data.txt");
 
  FileReader fr = new FileReader(file);
  BufferedReader br = new BufferedReader(fr);
 
  String line;
  while((line = br.readLine()) != null)
  {
    if(line.contains("password")){
      System.out.println(line);
    }
  }
  br.close();
  fr.close();
}
以上はjava 8 Stream流プログレッシブテキストファイルの詳細です。java 8 Stream流ファイルに関する資料は他の関連記事に注目してください。