问题标签 [apache-commons-io]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
218 浏览

java - 文件监控 | 收听时不更新jsp

我正在使用 commons-io jar 监视目录中的文件创建和修改。我能够在 Eclipse 控制台中获得结果。

问题是当它调用 onFileCreate 和 onFileChange 方法时我无法返回文件名。如何实现这一点?而且我还试图在 onFileCreate 和 onFileChange 中调用一种方法,它返回一个列表。如何返回列表?因为在这个监听器中我没有看到除了 void 的返回参数。

//调用新方法

当我看到文件更改/创建事件被触发时,我需要在 jsp 中更新更改。如何实现这一点?

0 投票
2 回答
10141 浏览

android - 使用 Robospice 和 Android Studio 的 Commons-Io 重复输入错误

我已经在以下问题上工作了几个小时,但还没有想出解决问题的方法。我已经尝试了 Stack Overflow 的以下修复(Android Studio 更新到 1.0 损坏了 Gradle Plugin v0.13.1 之后的 MultiDexDuplicate Zip Entry),但它们都没有工作。

尝试构建程序时出现以下错误:

该错误似乎表明 commons-io 在构建过程中被包含两次

我正在使用 Android Studio 和 Gradle 来包含多个 Robospice 依赖项。这是我的 Gradle 构建文件的依赖项部分:

使用“gradlew -q dependencies app:dependencies”命令查看项目的依赖树表明com.octo.android.robospice:robospice:1.4.14依赖于commons-io库。这是项目依赖树的相关片段:

即使我从 gradle 构建文件中的所有 Robospice 相关依赖项中排除了 commons-io,该依赖项仍会列出。我还尝试将组名从 commons-io 更改为 org.apache.commons,但这也不起作用。

在我解决这个问题之前,我的项目处于停滞状态,如果我能得到任何帮助,我将不胜感激。

0 投票
1 回答
770 浏览

java - 服务器非托管线程中无法解释的 ClassNotFoundException

ClassNotFoundException: org.apache.commons.io.IOUtils在以下情况下,我面临着一个奇怪的问题:

我有一个在 Websphere Application Server 8.0 中运行的 Web 应用程序,它使用 commons-io 2.0.1(这个 jar 正确放置在类路径中)。

我正在使用org.apache.commons.io.input.Tailer尾随日志文件并在屏幕上显示其内容。Tailer 实现了 Runnable,因此它在自己的线程中运行。

在应用程序关闭时,我调用 tailer.stop() 来停止线程。然后 Tailer 执行的最后一件事是关闭日志阅读器的 finally 块。

当它执行该行时,会有一个ClassNotFoundException: org.apache.commons.io.IOUtils.

我做了一些测试,将一些代码添加到 Tailer 类中(并在 jar 中替换它)以确定它是否是 ClassLoader 问题:

1.确定Tailer的资源:

Tailer.class.getClassLoader().getResource("org/apache/commons/io/input/Tailer.class");

输出wsjar:file:/home/myuser/.m2/repository/commons-io/commons-io/2.0.1/commons-io-2.0.1.jar!/org/apache/commons/io/input/Tailer.class 这是正确的罐子

2. 它使用什么类加载器?: Tailer.class.getClassLoader();

com.ibm.ws.classloader.CompoundClassLoader@8d336acd[war:application/myApp.war]这又是正确的。

3.尝试直接从之前的ClassLoader中加载IOUtils: Tailer.class.getClassLoader().loadClass("org.apache.commons.io.IOUtils");

再次出现 ClassNotFoundException

4. 现在,最令人惊讶的是:如果我在 run 方法的开头添加如下所示的 Class.forName(),则该类已正确加载,现在 finally 块中的 IOUtils 调用可以正常工作。怎么来的??

这没有任何意义!它使用来自 commons-io-2.0.1.jar 的 Tailer,但它不能使用位于同一个 jar 中的类。但是如果你在 run() 开始时强制加载类,那么它就不会再失败了。有任何想法吗?

这是整个堆栈跟踪:

0 投票
0 回答
541 浏览

java - commons-io FileFilter 过滤多个文件

我必须从具有特定扩展名的文件夹中获取所有文件的列表,不包括特定列表中的所有文件。

我查看了“org.apache.commons.io.FileUtils.listFiles()”,以及采用 IOFileFilter 类型的“fileFilter”参数的变体。我还查看了 IOFileFilter 的所有实现,例如“NameFileFilter”,它采用单个文件名。

我没有看到排除所有文件列表的明显约定。正则表达式变体不起作用。

0 投票
2 回答
81 浏览

java - 获取有关 Java 中更改的文件的信息

我正在尝试监视java中的文件。当文件修改发生时,我想知道:

  1. 哪个过程发生了变化。
  2. 发生了什么变化。

另外,我知道有一种方法可以更改文件中的“最后修改日期”,所以我想检查是否有人更改了该字段。

我尝试了“commons.io”、“DefaultFileMonitor”和“WatchService”,但我能从它们那里得到的所有信息都是是否发生了更改以及文件是否已更改。

0 投票
1 回答
857 浏览

java - Java Commons IO 追加多个文件

我正在使用 Commons IO 从 Internet 下载文件。

这是我正在使用的方法:

有没有办法我可以使用这种方法下载多个文件并将它们全部保存到 hello.txt 文件中?使用上述方法,所有内容都会被覆盖,最后下载的文件将是添加到 hello.txt 文件中的文件。

基本上,有没有一种方法可以将多个文件下载存储在一个文件中。

谢谢。

0 投票
1 回答
677 浏览

java - 有没有办法以编程方式将 JAR 中的资源文件复制到外部文件夹?

我正在尝试从当前正在运行的 jar 文件中访问资源文件。我现在需要的资源是一个 jar 文件,但我需要一种适用于任何文件的方法。我已经尝试过查看不同的解决方案,但到目前为止它们都没有奏效。我试图使用 URL 指向 jar 中文件的绝对路径,但这似乎不起作用。我已经检查了路径,它应该正在获取该文件。无论我做什么,URL 总是返回 null。我正在使用 Apache Commons-IO。

到目前为止,这是我的代码。

这会引发 NullPointerException。任何帮助表示赞赏。谢谢。

0 投票
2 回答
1736 浏览

groovy - 我的Gradle项目依赖commons-io 2.4,但是Gradle把$GRADLE_HOME/commons-io-1.4.jar放到classpath中,导致失败

我一直在迭代我的第一个 Gradle 插件中的功能。我很早就确定我需要 commons-io,所以我添加了对 commons-io 2.4 的依赖,它是最新版本。

这已经有一段时间了,构建从命令行工作,并且在 Eclipse 中没有错误。

我刚开始尝试集成一些使用“FileUtils.write(File,String)”的代码。我以前不需要那种方法。我在 Eclipse 中把所有东西都去掉了,然后我尝试了一个命令行构建。

这失败了,错误如下:

这让我很困惑。我去了 Eclipse 中的失败行,没有指出任何问题。我导航到“write()”方法,对我来说它看起来不错。然后我使用“--debug”运行我的命令行构建以获取一些线索。

当我找到“javac”行时,我发现“$GRADLE_HOME\lib\commons-io-1.4.jar”(其中“GRADLE_HOME”只是我的 Gradle 2.3 发行版)在我的依赖项 jar 之前的类路径中。然后我检查了 1.4 jar 中的代码,并确定该版本中的“FileUtils”类没有“write”方法。

我该怎么办?

更新

我想我的“依赖项”块可能很有用,就是这样:

我尝试注释掉“gradleApi”参考,但没有效果。我还尝试为与“groovy-all”引用关联的 commons-io 添加“排除”,但这似乎也没有任何区别。}

0 投票
1 回答
3409 浏览

java - 如何调试 NoSuchMethodError 异常?

我正在运行以下代码

并得到

显然,在某处使用了旧版本的 commons io。但我在项目中看不到它。

是否可以在运行时知道类文件的路径?

0 投票
1 回答
7311 浏览

java - 当目标是网络路径时,FileUtils.copyFile() 不创建文件(在 Windows 上)

我正在使用 apache common 的FileUtils.copyFile()将本地磁盘上的文件复制到网络共享位置。共享文件夹已存在,并且运行该应用程序的用户对其具有权限。FileUtils.copyFile() 毫无例外地执行。但是,该文件实际上并没有被创建。

将网络共享路径指定为目标时,它不起作用。但是,如果我在 Windows 中映射网络驱动器并通过网络映射写入它,它就可以工作。非常奇怪的是,我在复制操作后调用了 file.exists(),java 报告该文件存在,但它没有显示出来。

我还尝试使用 FIleUtils.copyFileToDirectory(),只指定目标目录而不是文件名。当目标是网络路径时,我遇到了同样的问题。