Java write() 函数

标签 java

java 中的write() 函数将新数据追加到文件末尾。这是我的问题; Java 是如何知道文件结尾的?

  1. 通过读取整个文件找到文件结尾
  2. 它知道文件的结尾在哪里

哪一个?提前致谢

最佳答案

许多操作系统都有特定的文件打开模式,其中写入总是写入文件末尾。 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/

相关文章:

java - JSF 2.0 DataTable 类组件

java - 在 Java 中使用即时编译的原因

Java PrintJob 到 DocPrintJob 不工作?

java - 在java反射中将Field.get()返回的Object转换为String[]

java - 正在运行的 Java 应用程序可以从操作系统接收已注册的文件类型事件吗?

java - 我需要帮助创建包含 Post 请求方法链接的 selenium 脚本

java - ReSTLet客户端使用身份验证 key

java - JAXB:注释对象列表元素标签名称的简单方法

Java : static fields behaviour in different executions

java - Java 8 消费者什么时候比可运行接口(interface)更受欢迎?