Java 文件流

2018-03-12 17:30 更新

Java流 - Java文件流


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

我們可以從文件中讀取文本作為字符串流。流中的每個(gè)元素表示一行文本。

我們還可以使用流從JarFile讀取JarEntry,我們可以讀取目錄中的條目作為Path流。

自動(dòng)關(guān)閉

調(diào)用stream上的close()方法將關(guān)閉底層文件。

或者,我們可以在try-with-resources語句中創(chuàng)建流,以便自動(dòng)關(guān)閉底層文件。


例子

以下代碼顯示如何使用流讀取文件的內(nèi)容。

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();
    }
  }
}

上面的代碼生成以下結(jié)果。

例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();
    }
  }
}

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)