|
|
1
7
自从Java 7以来 newWatchService() 方法在 FileSystem class . 但是,有一些警告:
在Java 7之前,使用标准API是不可能的。 我尝试了以下方法(每隔1秒进行一次轮询),但效果良好(只是在处理中打印):
因为没有人提出一个使用当前生产Java的解决方案,我想我会添加它。如果有缺陷,请添加评论。 |
|
|
2
5
如果使用WatchService类对文件进行更改,则可以注册以获得文件系统的通知。这需要java7,这里是文档的链接 http://docs.oracle.com/javase/tutorial/essential/io/notification.html 下面是要执行此操作的代码段:
|
|
|
3
3
使用Java 7的 WatchService NiO 2的一部分
|
|
|
4
2
对于标准库类,这是不可能的。看到这个 question 详情。 为了有效地进行投票,最好使用 Random Access . 如果您记住文件最后一个结尾的位置并从那里开始读取,这将有所帮助。 |
|
|
5
2
下面是两个可以并发运行的类(例如,在两个不同的shell窗口中),这表明一个给定的文件可以同时被一个进程写入并被另一个进程读取。 这里,这两个进程将执行这些Java类,但我假定编写过程可以来自任何其他应用程序。(假设它对文件没有独占锁,那么在某些操作系统上是否存在这样的文件系统锁?) 我已经在windoze和linux上成功地测试了这两个类。我非常想知道他们是否在某些情况下(例如操作系统)失败。 第1类:
第2类:
|
|
|
6
1
不幸的是,TestInPixStand类可以用来监视文件的结束,但它不是标准的Java平台类,但是在Web上很少有实现。您可以找到tailinputstream类的实现以及上的用法示例 http://www.greentelligent.com/java/tailinputstream . |
|
|
7
0
在一致周期或随机周期上进行轮询;200-2000毫秒应是一个良好的随机轮询间隔范围。 检查两件事… 如果必须监视文件增长,请检查eof/字节计数,并确保将其与lass轮询中的fileaccess或filewrite时间进行比较。如果(>),则文件已被写入。 然后,将其与检查独占锁定/读取访问结合起来。如果文件可以被读取锁定并且已经增长,那么对它所写的一切都已经完成。 单独检查任何一个属性都不一定能保证您的书面状态++ 和 实际完成并可供使用。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |