18得票7回答
扩展ByteBuffer类

有没有办法创建一个继承ByteBuffer类的类? ByteBuffer中的一些抽象方法是包私有的,如果我创建java.nio包,则会抛出安全异常。 出于性能原因,我想这样做-例如,getInt大约有10个方法调用,以及相当多的if。即使所有检查都被保留,只有方法调用被内联化且大小端检查被...

18得票11回答
Java大文件磁盘IO性能

我在硬盘上有两个文件,每个文件容量为2GB,想要将它们相互比较: 使用Windows资源管理器进行复制需要大约2-4分钟(即读取和写入 - 在同一物理和逻辑磁盘上)。 使用java.io.FileInputStream读取两次,再逐字节比较字节数组需要20多分钟。 java.io.Buff...

18得票2回答
检测套接字断开连接?

我有点难过,因为在尝试了几种不同的方案(这个,这个以及其他一些)后,我仍然无法优雅地处理它们,即使在 Stack Overflow 上有好几个问题都提到了这个问题,我仍然不能检测到套接字断开连接(通过拔出电缆)。 我正在使用 NIO 非阻塞套接字,除了找不到检测服务器断开连接的方法之外,一切都...

18得票3回答
将LongBuffer/IntBuffer/ShortBuffer转换为ByteBuffer。

我知道一种快速的方法可以将字节数组/短整型数组/整型数组/长整型数组转换为ByteBuffer,然后获取字节数组。例如,要将字节数组转换为短整型数组,我可以这样做: byte[] bArray = { 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, ...

18得票4回答
如何在Spring MVC中使用Servlet 3.1?

有两个不同的功能可用: servlet 3.0 允许在与容器线程不同的线程中处理请求。 servlet 3.1 允许在不阻塞读/写线程的情况下读写套接字。 互联网上有很多关于servlet 3.0功能的示例。我们可以在Spring中很容易地使用它。我们只需要返回 DefferedRes...

18得票3回答
Java中的非阻塞UDP I/O与阻塞UDP I/O的区别

非阻塞 TCP/IP 的 SocketChannel 和 Selector 在 NIO 中帮助我用少量的线程处理很多 TCP/IP 连接。但是 UDP 的 DatagramChannels 呢?(我必须承认我对 UDP 不是很熟悉。) 即使 DatagramChannel 没有在阻塞模式下运...

18得票4回答
为什么要使用Java的AsynchronousFileChannel?

我可以理解网络应用程序使用复用技术(以避免创建太多线程),以及程序使用异步调用进行流水线处理(更高效)。但我不理解异步文件通道的效率目的。 有任何想法吗?

17得票2回答
为什么FileChannel.map最多可以处理Integer.MAX_VALUE大小的数据?

我在使用FileChannel.map时遇到以下异常 Exception in thread "main" java.lang.IllegalArgumentException: Size exceeds Integer.MAX_VALUE at sun.nio.ch.FileCha...

17得票3回答
使用通配符列出Java 7 nio中的目录列表

我想使用通配符在一个目录中查找文件。我已经用Java 6实现了这个功能,但希望将代码转换为Java 7 NIO: File dir = new File(mydir); FileFilter fileFilter = new WildcardFileFilter(identifier+"....

17得票1回答
Java7 WatchService - 访问被拒绝错误,尝试递归删除嵌套目录(仅限Windows)

我按照Java7 nio2教程中的“监视目录变化”指南,使用代码示例WatchDir.java递归监视整个目录的内容。 虽然这在Linux和Mac上运行良好,但在Windows上(测试过Vista和7),尝试使用Windows Explorer删除嵌套的、被监视的文件夹时,如果嵌套目录中存在...