所以我的场景如下:
我有一个目录,每隔 X 秒就有一个 Java 应用程序轮询该目录以查看是否添加了任何新文件。如果检测到新文件(可能通过未知的 FTP 实现传输到那里),我想查看文件以查看它是否以特定字符串结尾(即“allData”)。如果该字符串存在,我将根据我的需要开始解析它,因为该文件被认为已成功传输。
所以问题是正在传输的文件可能非常大(几 GB),我不希望在整个文件完全传输之前开始解析(由结尾的“allData”字符串指示)。当我想查看该字符串的文件时,搜索必须快速且内存消耗低。由于这个原因,我使用了一个 RandomAccessFile 对象(只读模式),它将文件描述符设置为非常接近文件的末尾,然后我开始使用该 FD 和 BufferedReader 进行搜索。
我的问题是我在 Java 应用程序中打开文件是否会影响正在执行的文件传输。因为它可能是应用程序在文件传输之前开始读取(以决定是否已传输整个文件)的情况。在这样的实现中会发生任何令人讨厌的事情吗?