问题标签 [java.nio.file]

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 投票
1 回答
535 浏览

java - Files.getLastModifiedTime() 是否泄漏内存?

我遇到了一个错误,我们的一个服务器应用程序几乎每秒使用越来越多的内存,我设法过滤掉一个仍然显示该行为的简短示例:

在 Windows 8.1 和 Java 8u20 上运行。

通过 VisualVM,我观察到最大堆大小没有增长,并且堆本身不断增加。同时我在 Windows 任务管理器中观察到生成的 java.exe 进程每秒继续使用(保留)更多内存。

有趣的是,当我在 VisualVM 中执行 GC时,所有使用的堆内存都被重置为几乎为零,并且 java.exe 进程的使用内存不会像预期的那样缩小,因为它被认为是保留的。

但是,在 GC 完成后,内存使用量仍然每秒增加,而现在肯定有足够的可用堆空间。

元空间也不受影响。

对我来说,这真的很难闻,看起来 JVM 有内存泄漏。

谁能帮我解释一下这里发生了什么?

0 投票
1 回答
1303 浏览

java - Files.createSymbolicLink() 将 FileAttribute 数组作为参数;在任何操作系统上都有意义吗?

的原型Files.createSymbolicLink()是:

嗯……为什么?

符号链接只不过是一个 inode,其内容是一个指向...的字符串。目标甚至可能根本无效。

出于好奇,我尝试了这个(是的,它以 root 身份运行,但这是故意的):

嗯,我有点期待。

我知道符号链接的权限在哪里很重要的唯一情况是在 Linux 的 /proc/*/fd/ 中,因为符号链接的权限与打开文件描述符的权限相匹配。但这是系统生成的符号链接,与用户可以生成的完全不同。

是否存在任何操作系统,其中符号链接的权限实际上会以任何方式、形状或形式影响符号链接和/或其目标的行为?


编辑:好吧,我可以更改符号链接的所有者,chown但是...再次,有什么意义?

0 投票
2 回答
785 浏览

java - 使用 java.nio.files 选择 EOL

如何\n使用Unix 选择行尾java.nio.file.Files.write?可能吗?我没有找到任何要选择的选项或常量。这是我的方法

0 投票
1 回答
420 浏览

java - Oracle的JDK zip文件系统中的错误,您如何编写SSCCE来重现它?

此错误存在于最新的 JDK 1.7 和 1.8 版本(7u72、8u25)中。必需:杰克逊数据绑定 2.5.0。在 Linux x86_64(准确地说是 Ubuntu 14.10)上测试。

代码:

这会产生一个无效的 zip 文件:

我最初在杰克逊的问题跟踪器上打开了这个错误,即使它真的不是这里的罪魁祸首,并且找到了解决它的解决方案:JsonGenerator.Feature.AUTO_CLOSE_SOURCEObjectMapper. 默认情况下启用的此选项告诉映射器关闭流。

虽然我想向 Oracle 打开错误,但我首先希望能够编写一个 SSCCE,但我不能。我试图关闭流两次(因为它在示例中关闭了两次),而不是使用 try-with-resources 语句等......无济于事。

你能想出一个SSCCE来解决这个问题吗?

0 投票
1 回答
701 浏览

java - MappedByteBuffer 抛出 java.nio.BufferOverflowException

我正在学习 java nio,我正在使用 MappedByteBuffer 和 ExecutorService 异步复制文件。我的问题是 MappedByteBuffer.put() 方法抛出 java.nio.BufferOverflowException。但在我的调试中,我没有复制到目标文件的上方位置。这是我用来创建文件的新副本的代码部分:

例外是:

0 投票
1 回答
428 浏览

java - 如果服务器响应超时,使用带有 UNC 路径的 Java File.delete() 会得到什么

我有一个相当理论的问题要问你。

如果使用 UNC 路径调用 java.io.File#delete() 会发生什么,即 new File("\192.168.10.10\MyShare\myFile.txt").delete() 和底层 SMB_COM_DELETE 请求到达 SMB 服务器但SMB_COM_DELETE_RESPONSE 由于某种原因(网络故障、防火墙或其他)没有返回调用者?我希望java调用在几秒钟后超时,但是......你知道有多少吗?你知道一个人是否会得到某种例外吗?这是可配置的吗?如果我使用 Files.delete(),会有什么不同吗?

除了支持它之外,我在 java.io.File javadoc 中找不到 UNC 表示法的任何内容。

如果有人能回答这个问题,我会很高兴

谢谢!

0 投票
3 回答
5647 浏览

java - 如果 java 中已经存在,则移动目录时出错

我正在尝试强制移动目录,这意味着如果已经存在,则无需询问即可覆盖。

代码 :

错误输出:

如果文件夹不存在于目标路径上,则此代码有效,但如果已存在则失败。即使目标路径上存在空文件夹,此代码也不起作用。

在此调用选项中,我使用的不适用于文件夹。此代码已针对文件进行了测试,它也适用于已存在的文件。

但我想移动/覆盖文件夹。

0 投票
2 回答
342 浏览

java - java.nio中绝对路径的解析

关于Path.resolve(Path other)索赔的文件

如果other参数是绝对路径,则此方法通常会返回other

我不解:为什么?是否有一个真实的用例证明此功能很少?

我有一个反例。假设我们要将一个文件从一个文件复制FileSystem到另一个文件,而且我们想保留它的路径字符串。例如,如果原始文件是/foo/bar/readme.txt at fs1,则副本应是/foo/bar/readme.txt at fs2。一个明显的灵魂是:

当然,它不起作用,因为destfs1而不是关联fs2。但是上面的代码看起来非常一致!也许,这是我对Paths 及其分辨率的理解不足?请帮助我度过这个难关。

0 投票
4 回答
8277 浏览

java - 使用 JIMFS 创建虚拟文件系统

我想使用 Google 的 JIMFS 来创建一个用于测试目的的虚拟文件系统。不过,我很难开始。

我看了这个教程:http ://www.hascode.com/2015/03/creating-in-memory-file-systems-with-googles-jimfs/

但是,当我创建文件系统时,它实际上是在现有文件系统中创建的,即我不能这样做:

因为我被拒绝访问。

我错过了什么吗?

目前,我的代码如下所示:

测试类:

某处的Java类:

但是,我创建了一个单独的类来测试 JIMFS,这里目录的创建没有失败,但是我不能像这样创建一个新文件:

我究竟做错了什么?

0 投票
1 回答
2674 浏览

java - 为什么“Path.startsWith”行为与“String.startsWith”操作不同——即使是“Path.getFilename”

我正在使用 Java 版本 1.8.0_31。

我正在尝试使用 FileVisitor 接口递归访问目录树。程序应打印C:/books文件名以“Ver”开头的所有文件的名称。该目录C:/books有两个以“Ver”开头的文件Version.yxyVersion1.txt. 我尝试使用file.getFileName().startsWith("Ver"),但这返回错误。

我错过了什么吗?这是我的代码:

上述代码的输出是: