Java IO流操作详解
1. 常见流操作
在深入了解特定的流类之前,先回顾一下处理流时的一些常见操作。
1.1 关闭流
流被视为资源,使用后必须关闭,以免造成资源泄漏。可以在 finally
块中调用 close()
方法,或者使用 try-with-resource
语法来关闭流。在文件系统中,如果没有正确关闭文件,操作系统可能会锁定该文件,直到程序终止,其他进程才能对其进行读写操作。在Java中,推荐使用 try-with-resource
语法来关闭流资源。
1.2 刷新流
当数据写入 OutputStream
时,底层操作系统并不一定保证数据会立即写入文件。在许多操作系统中,数据可能会被缓存在内存中,只有在临时缓存满了或者经过一段时间后才会写入。为了避免应用程序意外终止导致数据丢失,Java提供了 flush()
方法,用于请求将所有累积的数据立即写入磁盘。不过,使用 flush()
方法会有一定的性能开销,尤其是对于大文件。除非写入的数据极其关键,否则应间歇性地使用该方法。在完成文件写入后,不需要显式调用 flush()
方法,因为 close()
方法会自动执行此操作。在写入大文件时,间歇性地调用 flush()
方法可能会提高性能。
1.3 标记流
InputStr