Java:检测文件修改(文件轮询?)

2024-04-02

在 Java 中检测文件修改的最有效方法是什么?

我读过有关文件轮询的内容,但是,轮询方法有许多缺点,随着监视文件数量的增加,这些缺点变得越来越明显。我宁愿不使用轮询,但许多在线解决方案似乎都将文件轮询作为推荐的方法。我希望有一个与操作系统相关的文件系统更新回调解决方案——这在 Linux 和 Windows 中都可能吗?

鉴于我目前只打算“观看”2 个文件,我仍然对文件轮询解决方案持开放态度。理想情况下,我希望文件轮询不会对性能产生很大影响。

我知道 Java 7 的 WatchService,但由于 7 尚未正式发布,我对使用该方法或 JNI 库犹豫不决。

非常感激!

编辑:看来文件轮询是可行的方法。如果有人可以推荐最安全/有效的方法来实现文件轮询,那就太好了。


这里有两个可用的库:

  • http://jpoller.sourceforge.net/ http://jpoller.sourceforge.net/
  • http://jnotify.sourceforge.net/ http://jnotify.sourceforge.net/

Java 7 NIO2 http://blogs.oracle.com/thejavatutorials/entry/watching_a_directory_for_changes可能还有一些适合您的东西(我不知道这些功能目前是否在 Java 7 的范围内)也可以作为JSR 203 http://java.sun.com/developer/technicalArticles/javase/nio/ see here http://openjdk.java.net/projects/nio/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:检测文件修改(文件轮询?) 的相关文章

  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • manifest.mf 文件的附加内容的约定?

    Java JAR 中的 MANIFEST MF 文件是否有任何超出 MANIFEST MF 约定的约定 JAR规范 http download oracle com javase 1 4 2 docs guide jar jar html
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe

随机推荐

  • C++ 容器的一般用例

    的一般用例是什么C 标准库容器 http www cplusplus com reference stl bitset deque list map multimap multiset 优先队列 queue set stack vector
  • Linq 在 C# 中比较两个集合

    我想比较我当前正在使用嵌套 for 循环执行的 C 中的两个集合 Linq 中是否有一种方法可以更快 更高效地执行相同操作 这是我当前的代码 它可以完美地工作 只是在寻找一种有效的方法 OrgCollection myYears Org R
  • 足球(足球)场线的单应性

    我正在研究使用足球比赛的视频 并尝试使用单应性将帧映射到球场的俯视图 我已经开始使用霍夫线以及线段检测器找到帧中的所有白线 其中线段检测器似乎工作得稍微好一些 请参阅下面我的代码和示例 import cv2 import numpy as
  • Scala 中的 shouldBe 和 shouldEqual 有什么区别?

    我什么时候应该使用shouldBe 什么时候应该使用shouldEqual port shouldEqual 8000 port shouldBe 8000 From http www scalatest org user guide us
  • 设置 ng-htmljs-preprocessor karma 预处理器

    我正在设置 Karma 配置文件 但我不完全理解存在的一些选项 因为我没有成功测试已通过 ngHtml2JsPreprocessor 运行并已 templateCached 在 ngHtml2JsPreprocessor 内部 我可以添加一
  • 无法从 Git post-receive hook 检测分支

    我在远程存储库上设置了一个后接收挂钩 它尝试确定传入推送的分支名称 如下所示 branch git rev parse abbrev ref HEAD 不过 我发现无论我从 branch 变量推送哪个分支 都会设置为 master 有任何想
  • 如何在 Visual Studio 2017 中将 npm 包与 ASP.NET CORE 2 一起使用?

    我在 Visual Studio 2017 中向我的 ASP NET Core 2 项目添加了一些 npm 包 现在我想使用这些包中的 css 和 js 文件 但 VS 看不到它们 因为 node modules 文件夹位于 wwwroot
  • 正则表达式:重复组仅获取最后一组

    My data stack 123 overflow 456 others st 7 ov 7 againothers m 11 t 12 m 13 t 14 m 15 t 16 st 8 ov 8 againothers m 17 t 1
  • Svg 在设备中不可见,但在 android xml 中可见

    我对这些图标使用了 SVG 这些图标在 xml 中可见 但在 device 中不可见 以下是我的代码
  • png8和png24有什么区别

    我想了解 png 文件的用途 有两种格式可供选择PNG 图像 一个是png8另一个是png24 我想知道如果我在我的html页面会出现错误吗 或者这只是质量问题 只有一种PNG格式 但支持5种颜色类型 http en wikipedia o
  • Android Kotlin 中的片段类型不匹配

    我将一步步尝试在 Kotlin Android 中创建一个简单的选项卡布局 我对我发现的很多教程感到非常沮丧 因为它们要么 1 有效 但设计过度 很难看出发生了什么 要么 2 似乎不起作用 这是情况 2 中的一种 非常接近工作 但有一些问题
  • 使用 hibernate @Formula 获取集合

    我有类似的数据库结构 唯一的区别是我在从 A 到 C 实体的路径上有更多表 我对该结构有以下映射 Entity Table name a class A Id private int id private String title Elem
  • scikit-learn:如何计算百分比均方根误差(RMSE)?

    我有一个数据集 在此链接中找到 https drive google com open id 0B2Iv8dfU4fTUY2ltNGVkMG05V00 https drive google com open id 0B2Iv8dfU4fTU
  • Erlang:NIF 和透析器警告

    在实施 NIF 时 Dialyzer 给了我 函数 crc16 1 没有本地返回 可能是因为我这样做exit在 erl 模块中 如官方文档推荐 module my nifs export crc16 1 on load init 0 ini
  • 如何在 Xcode 4 项目导航器的工作区中隐藏资源分支和其他特殊文件?

    我注意到资源分叉 filename 和其他隐藏文件 例如 DS Store在处理 工作区 项目 Ruby 时 会显示在项目导航器中 如何配置 Xcode 4 使其不在项目导航器中显示这些文件 None
  • 之间有什么区别?

    我应该什么时候使用
  • NodeJS 环境变量未定义

    我正在尝试创建一些环境变量 但是当我创建文件并运行服务器时 它们似乎未定义 我在用着nodemon 我已经重新启动了我的服务器 但没有运气 UPDATED env MONGO ATLAS PW xxxx JWT KEY secret thi
  • 在 Swift 中一次迭代两个集合

    假设我有一个数组 1 2 3 4 5 我怎样才能一次迭代两个 Iteration 1 1 2 Iteration 2 3 4 Iteration 3 5 nil 您可以使用名为 stride to by 的渐进循环来每隔 n 个元素迭代元素
  • 使用 Google API 获取用户的所有电子邮件地址

    对于我自己的 Gmail 帐户 我有多个与其关联的电子邮件地址 例如 我有一个与我的 gmail 关联的大学电子邮件地址 我可以从我的 gmail 发送电子邮件 就像它们来自我的大学电子邮件地址一样 我正在阅读 Google API 发现我
  • Java:检测文件修改(文件轮询?)

    在 Java 中检测文件修改的最有效方法是什么 我读过有关文件轮询的内容 但是 轮询方法有许多缺点 随着监视文件数量的增加 这些缺点变得越来越明显 我宁愿不使用轮询 但许多在线解决方案似乎都将文件轮询作为推荐的方法 我希望有一个与操作系统相