本文主要介绍Java中,使用Stream I/O(InputStream/OutputStream)对文件进行读取和写入操作的方法,以及使用的示例代码。

1、使用Stream I/O读文件

要打开文件进行读取,可以使用 newInputStream(Path, OpenOption...)方法。此方法返回一个无缓冲的输入流,用于从文件中读取字节。

Path file = Paths.get("src/logfile.txt"); ;
try (InputStream in = Files.newInputStream(file);
BufferedReader reader =
new BufferedReader(new InputStreamReader(in))) {
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException x) {
System.err.println(x);
}

2、使用Stream I/O写文件

您可以使用该newOutputStream(Path, OpenOption...)方法创建文件,附加到文件或写入文件 。此方法打开或创建用于写入字节的文件,并返回未缓冲的输出流。

该方法采用可选OpenOption参数。如果未指定打开选项,并且文件不存在,则会创建一个新文件。如果文件存在,它将被截断。此选项等效于使用CREATETRUNCATE_EXISTING选项调用方法。

以下示例打开一个日志文件。如果该文件不存在,则会创建它。如果文件存在,则将其打开以进行追加。

import static java.nio.file.StandardOpenOption.*;
import java.nio.file.*;
import java.io.*;
public class LogFileTest {
  public static void main(String[] args) {
    // Convert the string to a
    // byte array.
    String s = "Hello World! ";
    byte data[] = s.getBytes();
    Path p = Paths.get("./logfile.txt");
    try (OutputStream out = new BufferedOutputStream(
      Files.newOutputStream(p, CREATE, APPEND))) {
      out.write(data, 0, data.length);
    } catch (IOException x) {
      System.err.println(x);
    }
  }
}

相关文档https://docs.oracle.com/javase/tutorial/essential/io/file.html