当前位置: 首页 > 面试题库 >

用Java创建具有给定大小的文件

仇浩旷
2023-03-14
问题内容

有没有一种 有效的 方法来用Java创建具有给定大小的文件?

在C语言中,可以使用ftruncate来完成。

大多数人只会将 n个
虚拟字节写入文件,但是必须有一种更快的方法。我在考虑ftruncate以及稀疏文件



问题答案:

创建一个新的RandomAccessFile并调用setLength方法,指定所需的文件长度。底层JRE实现应使用您环境中可用的最有效方法。

以下程序

import java.io.*;

class Test {
     public static void main(String args[]) throws Exception {
           RandomAccessFile f = new RandomAccessFile("t", "rw");
           f.setLength(1024 * 1024 * 1024);
     }
}

在Linux机器上将使用ftruncate(2)分配空间

6070  open("t", O_RDWR|O_CREAT, 0666)   = 4
6070  fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
6070  lseek(4, 0, SEEK_CUR)             = 0
6070  ftruncate(4, 1073741824)          = 0

在Solaris机器上,它将使用fcntl(2)系统调用的F_FREESP64函数。

/2:     open64("t", O_RDWR|O_CREAT, 0666)               = 14
/2:     fstat64(14, 0xFE4FF810)                         = 0
/2:     llseek(14, 0, SEEK_CUR)                         = 0
/2:     fcntl(14, F_FREESP64, 0xFE4FF998)               = 0

在两种情况下,这都会导致创建稀疏文件。



 类似资料:
  • 问题内容: 出于测试目的,我必须生成一定大小的文件(以测试上传限制)。 在Linux上创建一定大小的文件的命令是什么? 问题答案: 测试文件的大小在哪里(以字节为单位)

  • 问题内容: 我需要在Java中编写一个算法(对于android应用程序)来读取包含更多文件夹的文件夹,以及每个包含图像和音频文件的文件夹,因此结构如下: 我的问题是我需要将档案的大小限制为16mb,并且在运行时,根据需要创建尽可能多的档案,以包含主文件夹中的所有文件。 我从网上尝试了几个示例,并阅读了Java文档,但是我无法理解并按照需要的方式将它们放在一起。有人以前做过这个吗,或者有一个链接或一

  • 提前感谢你的帮助

  • 问题内容: 我正在尝试从JavaScript创建iframe并用任意HTML填充它,如下所示: 我希望然后包含一个有效的窗口和文档。但是,事实并非如此: console.log(iframe.contentWindow); 空值 我在俯视什么? 问题答案: 设置javascript中新创建的时,除非将该元素插入文档中,否则不会触发HTML解析器。然后更新HTML,将调用HTML解析器并按预期处理属

  • 问题内容: 我想创建一个可以容纳10个元素的空列表(或最好的方法)。 之后,我想在该列表中分配值,例如,应该显示0到9: 但是,当我运行此代码时,它会产生错误,或者在其他情况下,它只会显示(空)。 有人可以解释为什么吗? 问题答案: 你不能分配给类似的列表,除非该列表已至少已使用元素初始化。你需要使用append将元素添加到列表的末尾。。 (如果使用字典,则可以使用分配符号)。 创建一个空列表:

  • 问题内容: 有关于这个另一个线程,我已经试过。但是有一个问题:删除内容不会缩小。我找不到任何将其缩小为正确大小的方法-该值会以的完整大小返回,而不是其内容的大小。 该页面上的代码如下: 问题答案: 这对我有效(Firefox 3.6 / 4.0和Chrome 10/11): _如果您想在jsfiddle _上尝试它,它以一行开始,并且仅增长所需的确切数量。可以使用一个,但是我想写一些这样的东西(在