java – 为文件存储预分配驱动器空间
是否有Java方法为应用程序中的独占使用预先分配驱动器空间? 不要求此空间是单独的文件系统或现有文件系统的一部分(因此很容易成为数据库),但它应该允许保留指定的空间量并允许随机读取/写入具有足够高的吞吐量. 最佳答案
您可以尝试使用RandomAccessFile对象并使用setLength()方法.
例:
注意:在创建RandomAccessFile对象之前,该文件必须存在. 然后可以使用RandomAccessFile对象读取/写入文件.确保目标文件系统有足够的可用空间.空间可能不是“独占”,但您可以随时使用文件锁来执行此操作. P.S:如果您最终意识到硬盘驱动器速度慢且无用(或者从一开始就意味着使用RAM),您可以使用java.nio中的ByteBuffer对象. allocate()和allocateDirect()方法应该足够了.字节缓冲区将被分配到RAM(和可能的SwapFile)中,并且将独占于此java程序.可以通过改变缓冲区的位置来进行随机访问.由于这些缓冲区使用有符号整数来引用位置,因此最大大小限制为2 ^ 31 – 1. 阅读RandomAccessFile here的更多信息. 阅读FileLock(java对象)here的更多内容. 阅读更多关于ByteBuffer here的信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |