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
参数。如果未指定打开选项,并且文件不存在,则会创建一个新文件。如果文件存在,它将被截断。此选项等效于使用CREATE
和TRUNCATE_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