当前位置: 首页 > 面试题库 >

检查文件是否完全写入

公良俊楚
2023-03-14
问题内容

目前,我正在该项目中执行例程之一来处理源目录中的文件。有一个Java进程正在查找指定的目录,并尝试读取和处理文件(如果存在)。文件很大,其他第三方进程会更新它们。问题是如何检查文件是否完全写入?我正在尝试使用,file.length()但看起来即使编写过程尚未完成,它也会返回实际大小。我觉得解决方案应该取决于平台。任何帮助,将不胜感激。

更新:这个问题与重复的问题没有什么实质性的区别,但是它的答案是工作代码片段,获得了很高的评价。


问题答案:

生产者进程在完成写入后会关闭文件吗?如果是这样,如果生产者进程仍在生产,尝试使用独占锁在使用者进程中打开文件将失败。



 类似资料:
  • 问题内容: 我有一个简单的路线定义: 是唯一的选择吗?感觉很乱。 问题答案: 根据node.js的源代码 不返回任何内容。 如果出现问题,它将抛出一个对象。因此,您应该在一个块中编写。

  • 问题内容: 因此,我听说如果将2个字符串与==进行比较,则只有它们都引用相同的对象/实例时,我才会返回true。那是琴弦。布尔呢? 问题答案: ==是否检查布尔值是否完全相等?-Java 这取决于您是在谈论s(对象包装,请注意大写)还是s(原始,请注意小写)。如果您在谈论s(对象包装器),就像处理所有对象一样,请检查 身份 ,而不是对 等 。如果您在谈论s(基元),它将检查是否相等。 所以: 但

  • 问题内容: 假设您有一个外部进程将文件写入某个目录,并且有一个单独的进程定期尝试从该目录读取文件。要避免的问题是读取文件,表明其他进程当前正在写出该文件,因此该文件是不完整的。当前,读取的进程使用最小文件期限计时器检查,因此它将忽略所有文件,除非文件的最后修改日期早于XX秒。 我想知道是否有更干净的方法来解决此问题。如果文件类型未知(可能有多种不同的格式),是否存在某种可靠的方法来检查文件头以获取

  • 问题内容: 尝试检查我要读取的文件是否存在。 问题答案: 这是另一种方法: 包装的用途和功能: p_DirName in varchar2, – schema object name p_FileName in varchar2 ) return number is l_file_loc bfile; begin l_file_loc := bfilename(upper(p_DirName),

  • 问题内容: 检测下载是否完成的最佳方法是什么,因为此后我想更新数据库。 我尝试了PHP手册中的一些代码,但对我来说并没有多大作用: 问题答案: 但这并不能真正告诉您用户是否已完成下载。当 您 完成向用户发送字节后,它将告诉您,但它并没有说明用户实际收到了多少字节。 实际上,PHP(服务器端而非客户端语言)无法真正检测文件下载何时完成。最好的办法是在下载开始时将下载记录在数据库中。如果您绝对,完全和

  • 问题内容: 我正在使用JAI并使用以下文件创建文件: 我在该行之前检查文件是否存在。但是,如何检查文件是.bmp还是.tiff还是图像文件? 有人知道吗? 问题答案: Image Magick项目具有识别图像的功能,并且有一个用于Image Magick的Java包装器,称为JMagick,我认为您可能需要考虑而不是重新发明轮子: http://www.jmagick.org 我一直在使用Imag