问题标签 [filechannel]
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 - FileChannel 映射 - 无法扩展写入
我正在使用 RandomAccessFile 打开大文件(~ 200 MB),然后为它获取 Channel。我正在尝试将一些数据映射到 MappedByteBuffer,但出现异常:
通道未打开写入 - 无法将文件扩展为所需大小。
我不明白,为什么 map 方法试图写入文件 - 映射区域小于文件大小!为什么在这种情况下尝试扩展文件?
更新
问题解决了,原来我认为第三个参数表示文件中的索引位置,它是缓冲区的长度。
java - 以最快的方式复制大文件
我试图找到一种以最快的方式复制大文件的方法......
然后创建这个类:
我测试了它,结果非常非常令人印象深刻......但是有一个很大的问题,复制的文件比当前文件大很多!
所以,请检查它并帮助我找到问题,谢谢:))
java - 如何使用 Java FileChannel 复制保留的时间戳
如何使用 Java FileChannel 复制文件和目录的保留时间戳?看起来文件在复制到另一个位置时没有保留时间戳。在 Java 中使用 FileChannel 怎么可能?
java - MappedByteBuffer 在初始运行时很慢
长期读者,第一次海报。
我在从一组二进制文件中快速读取数据时遇到了一些麻烦。ByteBuffers 和 MappedBytBuffers 提供了我需要的性能,但它们似乎需要初始运行才能预热。我不确定这是否有意义,所以这里有一些代码:
所以这需要大约 7 秒才能运行,但如果我再次运行它,它会在 10 毫秒内完成。似乎它需要进行某种初始运行来设置正确的行为。我发现通过做这样简单的事情是可行的:
这大约需要 2 秒,如果我随后运行 MappedByteBuffer 过程,它会在 10 毫秒内返回数据。我只是不知道如何摆脱初始化步骤并在 10 毫秒内第一次读取数据。我已经阅读了有关“热身”、JIT 和 JVM 的各种内容,但都无济于事。
所以,我的问题是,是否有可能立即获得 10 毫秒的性能,还是我需要进行某种初始化?如果是这样,请问最快的方法是什么?
该代码旨在运行大约一千个相当大的文件,因此速度非常重要。
非常感谢。
java - 使用 ByteBuffer 和 FileChannel 结束文件
我写了一个小代码,说
假设文件包含10个字节,屏幕上出现的结果是10,0,0,但文件末尾没有-1,为什么?
java - 如何倒带文件通道
在我的作业中我们需要使用fc.position(position)
来定位内容,但是之后我需要倒带 fc 以便递归这样做,我该怎么办,似乎 fc 没有倒带方法
java - 我可以在某些字节被超越的情况下反转文件通道吗
在我的编程中,我不知道我需要为处理它的某个对象读取多少字节。但我知道它最多是 1024 字节。
处理完对象后,我怎样才能将剩余的字节放回文件中,即,将 fc 反转为剩余字节数。
我的意思是我可以让文件通道返回一定数量的字节,比如从当前位置返回 4 个字节吗?–
android - 复制文件:FileChannel vs Input/OutputStream
是否使用FileChannel
更新和更好的方式在 Android 中复制文件(而不是制作InputStream
and OutputStream
)?
如果是这样,我如何指定File
要复制到任何其他位置的资产?
java - 奇怪的 ByteBuffer 输出
当我遇到这个奇怪的问题时,我正在使用 ByteBuffers 和 IntBuffers。这是代码 -
现在,如您所见,程序创建 aByteBuffer
和 anIntBuffer
并使用类的put()
方法IntBuffer
将 an 添加int
到ByteBuffer
4 个字节。System.out.println(bb.getInt());
当我在 try 块语句注释之前运行程序时, 这是我的输出 -
System.out.println(bb.getInt());
现在,当我使用未注释的语句再次运行它时, 这就是我的输出 -
那么谁能告诉我为什么会这样?
java - 如何创建写入 FileChannel 的 OutputStream
我有一个FileChannel
对象(我需要它以便我可以将 a 应用FileLock
到文件中),并且我想使用一个简单的OututStream
. 如何创建一个OutputStream
写入 a 的FileChannel
?
这应该在某个地方的 Java API 中,但我找不到它。FileChannel
没有合适的工厂方法。该类FileOutputStream
没有合适的构造函数。该类Files
(Java 7)没有合适的方法。