Java 文件流

Java流 – Java文件流

来自Java 8的java.io和java.nio.file包添加了许多方法来支持使用流的I/O操作。

我们可以从文件中读取文本作为字符串流。流中的每个元素表示一行文本。

我们还可以使用流从JarFile读取JarEntry,我们可以读取目录中的条目作为Path流。

自动关闭

调用stream上的close()方法将关闭底层文件。

或者,我们可以在try-with-resources语句中创建流,以便自动关闭底层文件。

例子

以下代码显示如何使用流读取文件的内容。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    Path path = Paths.get("./Main.java");
    try (Stream<String> lines = Files.lines(path)) {
      lines.forEach(System.out::println);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

上面的代码生成以下结果。

例2

以下代码显示如何使用流读取路径。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    Path dir = Paths.get(".");
    System.out.printf("%nThe file tree for %s%n", 
        dir.toAbsolutePath());
    try (Stream<Path> fileTree = Files.walk(dir)) {
      fileTree.forEach(System.out::println);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

上面的代码生成以下结果。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Java 文件流》
文章链接:https://zhuji.vsping.com/293962.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。