问题标签 [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 - Files.createTempDirectory("") 抛出 NullPointerException
当我打电话时,Files.createTempDirectory("")
我得到以下异常:
Files.createTempDirectory("")
我发现的使用示例都没有在任何FileAttribute
s 中传递。我已经尝试过,Files.createTempDirectory("", new FileAttribute<?>[] { });
但它也没有帮助。
我在 Windows 7 系统上使用 32 位 JDK 7。我不是机器上的本地管理员。
有没有人遇到过这个?
更新 1:
Files.createTempFile(this.tempDir.toPath(), "tmpFile", "");
似乎有同样的问题。
作为一种解决方法,我已移至com.google.common.io.Files.createTempDir()
.
java - Java NIO2 Files.copy() 与 Bash cp - 性能比较
我有一个 Java 程序,它由 Bash 脚本通过命令行启动,而 cron 又以不同的时间间隔调用它。
这个程序执行了几个操作,第一个是可能大量或多或少的大文件的副本。(从 10000 个 30 KB 的文件到 1 个 1 GB 的大文件,但这些都是边缘情况。)
我很好奇应该如何完成这一步以确保性能(如速度)。
我可以使用 Bash 的cp
函数或 Java 7 的Files.copy()
. 我将运行自己的测试,但我想知道在决定实施之前是否有人可以考虑任何比较数据?
java - 如何使用 NIO 获取有关 Windows 快捷方式来源的信息?
请看这段代码片段:
使用以下 Windows 操作创建了名为 followLink.lnk 的文件:
鼠标右键单击文件->创建快捷方式
最后两行输出相同,并且有关快捷方式的信息。nio2 中是否有方法获取有关源的信息,指向快捷方式?
java - 为什么我在根文件夹下按掩码搜索文件时看到 NullPointerException?(Windows)
我调查了 java nio2 的可能性。
我知道我可以使用FileVisitor
界面搜索文件。为了实现这个功能,我使用 glob 模式。
我的示例代码:
访客界面实现:
主要方法:
main 方法的这种变体可以正常工作,但是如果我更改:
和
我看到以下堆栈跟踪:
我不是这个问题的原因。
如何解决?
java - 服务器-客户端中的异步读取:单独的客户端消息
我正在使用AsynchronousServerSocketChannel
. 出于测试目的,我创建了一个小型客户端原型,它发送两条消息,"hi"
然后"stackoverflow"
断开连接。在服务器端,我读取到达的消息并将它们打印到标准输出。当客户端执行时,我期望收到:
问题是,有时当服务器调用读取回调时两条消息都已经到达,所以我得到
反而。
问题是,是否可以在服务器端确保消息单独到达,如果可以,如何做到这一点?
这是我CompletionHandler
处理客户端连接的原型:
ByteBuffer
转换String
:
这是一个测试客户端原型:
java - 合并大文件而不将整个文件加载到内存中?
我想将包含字符串的大文件合并到一个文件中并尝试使用 nio2。我不想将整个文件加载到内存中,所以我用 BufferedReader 进行了尝试:
我用这个试过了,这行得通,但是,字符串的格式(例如,新行等不会复制到合并文件中):
如何在不将整个文件加载到内存的情况下将大文件与 NIO2 合并?
java - 按最大行拆分非常大的文本文件
我想将一个包含字符串的大文件拆分为一组新的(较小的)文件并尝试使用 nio2。
我不想将整个文件加载到内存中,所以我用 BufferedReader 进行了尝试。
较小的文本文件应受文本行数的限制。
该解决方案有效,但是我想问是否有人知道使用 java 8(可能是带有 stream()-api 的 lamdas?)和 nio2 的性能更好的解决方案:
java - 如何提高 java nio2 的网络性能?
我阅读了nio2的api,并找到了这些改进方法:
这些取决于给定的情况:
点对点还有其他方法吗?
java - 没有在我的客户中获得 OP_READ
我是 NIO 和 NIO2 的新手。我一直在使用 Echo 服务器示例代码,它可以完美运行。我开始写一个类似的客户端。我的目标是让多个客户端套接字连接在一个主线程上运行。
我确实得到了 OP_CONNECT,然后选择器没有返回并从以下超时:while(Selector.select(10000)>0) { .... }
如果我忽略选择器并开始使用 socketChannel.read(...) 读取数据,我可以读取数据。因此,数据已准备好被读取,但我只是没有让 Selector.select(10000) 返回一些键。
这是完整的源代码,我真的很感激任何帮助:
谢谢,
java - java nio SocketChannel.read 不返回 -1 表示流结束
我正在编写一个代码,它使用 NIO/Selector 进行网页抓取。有用。我确实得到了 OP_CONNECT,然后我发送了 GET 请求,并取回了整个 html 页面。但是,在那之后,我没有得到 -1 就知道它已经完成了。我确实看到了,这意味着整个页面已经发送,但是 SocketChannel.read 没有返回 -1 来指示流的结束。非常感谢任何帮助!
这是整个示例代码: