java 中的write()
函数将新数据追加到文件末尾。这是我的问题; Java 是如何知道文件结尾的?
- 通过读取整个文件找到文件结尾
- 它知道文件的结尾在哪里
哪一个?提前致谢
最佳答案
许多操作系统都有特定的文件打开模式,其中写入总是写入文件末尾。 Java 可能会使用它来将数据追加到文件末尾。
例如,open()
内核 API 函数的手册页可以接受 O_APPEND
标志:
O_APPEND append on each write
Opening a file with O_APPEND set causes each write on the file to be
appended to the end.
另一种写到文件末尾的方法是首先使用 SEEK_END
子函数 lseek()
到文件末尾(参见 lseek (2)
手册页)。对文件的新写入将出现在当前文件指针的位置。
但是,lseek()
方法可能会导致两个不同的写入器在尝试写入同一偏移量时覆盖彼此的数据。因此,通常使用第一种方法打开日志文件等文件。没有任何理由将数据写入日志文件中除末尾之外的任何地方。else。
关于Java write() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541785/