Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从正在写入的文件中读取?_Java - Fatal编程技术网

Java 如何从正在写入的文件中读取?

Java 如何从正在写入的文件中读取?,java,Java,我有一个将信息写入文件的应用程序。该信息在执行后用于确定应用程序的通过/失败/正确性。我希望能够在编写文件时读取该文件,以便实时执行这些通过/失败/正确性检查。 我认为这是可能的,但是当使用Java时,什么是gotcha?如果读操作赶上了写操作,它会等待更多的写操作直到文件关闭,还是读操作会在此时引发异常?如果是后者,我该怎么办?利用类RandomAccessFile?这不是一个简单的任务。您需要使用java.nio.file.WatchService,并且您需要找到一种方法来知道文件将不再更新

我有一个将信息写入文件的应用程序。该信息在执行后用于确定应用程序的通过/失败/正确性。我希望能够在编写文件时读取该文件,以便实时执行这些通过/失败/正确性检查。
我认为这是可能的,但是当使用Java时,什么是gotcha?如果读操作赶上了写操作,它会等待更多的写操作直到文件关闭,还是读操作会在此时引发异常?如果是后者,我该怎么办?

利用类
RandomAccessFile
?这不是一个简单的任务。您需要使用
java.nio.file.WatchService
,并且您需要找到一种方法来知道文件将不再更新,因为您将监视文件中的更改事件,而不是文件的结尾。这可能会帮助您实现这一点。但这绝非易事(用Java或其他语言)。重新访问您的需求可能会更容易,例如让应用程序触发检查本身。一个关键的问题是同步(如您所说,写操作将赶上读操作),这几乎必须由您的程序手动管理。利用类
RandomAccessFile
?这不是一个简单的任务。您需要使用
java.nio.file.WatchService
,并且您需要找到一种方法来知道文件将不再更新,因为您将监视文件中的更改事件,而不是文件的结尾。这可能会帮助您实现这一点。但这绝非易事(用Java或其他语言)。重新访问您的需求可能会更容易,例如让应用程序触发检查本身。一个关键的问题是同步(正如您所说,写操作赶上读操作),这几乎必须由您的程序手动管理。