在本 Java 8 教程中,学习使用流 API 逐行读取文件。 另外,还要学习遍历行并根据某些条件过滤文件内容。
1. Java 8 读取文件 – 逐行
在此示例中,我将读取文件内容为stream,并一次读取每一行,并检查其中是否包含单词"password"。
Path filePath = Paths.get("c:/temp", "data.txt");//try-with-resourcestry (Stream<String> lines = Files.lines( filePath )){lines.forEach(System.out::println);}catch (IOException e){e.printStackTrace();}
上面的程序输出将在控制台中逐行打印文件的内容。
Neverstorepasswordexceptin mind.
2. 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
我们将读取给定文件的内容,并检查是否有任何一行包含单词"password",然后将其打印出来。
3. Java 7 – 使用FileReader读取文件
到 Java 7 为止,我们可以通过FileReader以各种方式读取文件。
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 逐行读取文件示例的全部。 请在评论部分提出您的问题。
学习愉快!
