问题标签 [nio2]
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.
java - 如何检查操作系统是否符合 POSIX
我正在编写一个跨平台应用程序,该应用程序创建临时文件并将它们复制到另一个位置,每个人都需要读取它们。(默认情况下,只有所有者对临时文件具有读取权限。)我尝试使用 POSIX 文件权限,如下所示:
但这会导致在非 POSIX 平台上出现异常:
我想添加一个简单的检查,以便我可以在必要时使用文件权限,而不会破坏与其他平台的兼容性。
java - 是否有一种简单的、仅 NIO2 的方法可以将 URL 转换为路径
我想从获得的 URL 中复制目录(包括内容)
它返回jar:file:/D:/../some.jar!/someparent
或file:/D:/../someparent
我想到了一个FileSystem
(用于 jar intern dirs)并递归复制Files.walkFileTree(..)
.
是否可以修改jar:file:/D:/../some.jar!/folder
为仅获得 FileSystem NIO2?
java - DirectoryStream.Filter 示例,用于列出基于特定日期/时间的文件
例如,我正在尝试调查一个DirecoryStream.Filter
示例,newDirectoryStream
以列出一个目录(及其所有子目录)下超过 60 天的所有文件。
在上面的代码中,应该是DirectoryStream.filter
什么?
这将是一个很大的帮助,因为我在一个项目中试图删除早于某个时间戳的文件并且 pre-java 1.7File.listFiles()
只是挂起。
可以Files.walkFileTree()
提供一个选项吗?
java - DatagramChannel、阻塞模式和cpu
我得到以下代码片段:
此代码位于 a 中Callable
,我创建了最多 12 个Callable
s(因此 12 个线程)来检索来自 12 个不同端口的具有不同数据的多播数据包。它只读取每 3-8 秒在网络上广播的信息。
当连续池化 12 个端口时(等待信息、获取信息等),它会占用我的一个 CPU 的 100%。
java.nio.channels.DatagramChannel#receive()
使用JVisualVM分析执行,我看到 90% 的执行时间都用于com.sun.nio.ch.DatagramChannelImpl#receiveIntoBuffer()
.
我不太明白为什么阻塞模式会占用这么多CPU。
我已经阅读了一些关于使用
Selector
s 而不是阻塞模式的文章,但我真的不明白为什么while (true)
withSelector
会比阻塞通道消耗更少。
java - 来自 Java NIO2 中的临时文件的 Files.copy 上的 AccessDeniedException
我已经习惯了 Java 7 和新Files
类。
我正在编写一个小型应用程序,它在某些时候必须替换文件的内容。如果出现问题,我使用了一个临时文件来避免擦除目标文件。AccessDeniedException
但是,在执行实际副本时,我总是得到一个。
这是我的代码:
getCurrentConfigFile()
处理目标文件路径创建:
当我执行代码时,它是通过.bat
脚本进行的,并且我在标准命令提示符或提升中都得到了错误。目标文件位于 中C:\temp\tests
,这是我使用同一个 Windows 用户创建的目录。
似乎问题在于从临时文件中读取,因为直接写入目标是可行的。我接下来应该看哪里?
java - Nio2 WatchService
I'm learning about file watchers in nio2, and an example file had a Map variable where they mapped files to watch keys, and had the following code:
According to this example, i'm led to believe that the watch service occasionally might give me a false-positive (a key that's not mapped to a file the application is watching), but in the Oracle Reference they make no such check. I'm now unsure whether i really need have the dictionary or not. Can anyone with experience with nio2 shed some light on this?
linux - 使用 Java NIO 2 的符号链接级别太多 - Paths.get(workFolder, timestamp);
我正在使用 Java NIO2 得到“太多级别的符号链接”:- 这是在 Unix 上运行的。任何想法都会有很大帮助。谢谢。
在我调用的代码深处
并且在流程中的某个时刻 - 我正在尝试按照以下方法获取当前文件夹..
但我得到以下例外..
java - 在已挂载的 CIFS 共享中设置文件的权限 - NIO.2
我试图在创建时添加一组属性,如下例所示。此代码在已挂载的 CIFS 共享中使用特定权限(“rw-rw-r--”)在 POSIX 文件系统上创建一个新文件。
运行简单代码后,文件已创建,但它的权限看起来
而不是我需要的(查看代码'rw-rw-r--')
有人可以帮我解决这个问题吗?
java - NIO.2 异步通道编码指南
例如,我想将 100500 字节读入一个数组:
这里的 LambdaAdapter 是一个简单的包装器,它将 CompletionHandler 转换为具有三个参数的函数式接口。
反正。偏移量可以放在'attachment'参数中,lambda可以预先声明并作为字段重用。然而,生成的代码总是丑陋的丑陋的。
即使对于这样简单的任务,我也无法编写可接受的解决方案 - 对于读取与写入交错并包装在复杂逻辑中的复杂协议,它会是什么样子?
有谁知道处理异步 API 的合适方法?如果您认为 Scala 可以在这里拯救世界,请随意使用它。
java - Java NIO 2 DirectoryStream 列表在文件更改时更改
在目录中列出文件时,我注意到一个奇怪的行为。我的情况是我有一个 txt 文件列表,我保存在数据库中,并且对应于这些数据文件有 xml 文件,其中包含每个 txt 的一些标签,这些标签与它们在 db 中的元属性相关联。
当我从目录中列出文件并读取 xml 文件时,流如何更改并再次列出已添加到 db 的文件。文件名在我的数据库中是 id 并且是唯一的,重新列出它们违反了主键约束。
我想知道为什么listing会受到干扰?
现在对于某些文件,它运行良好,但随后一些已列出的文件又回来了。就像 1.txt 已处理并保存在 db 中,但在稍后的循环中再次列出。