怎样快速生成一个指定大小的文件?

zhaidafan 2005-10-14 10:50:41
首先建立一个文件,之后再写入一定量的垃圾信息,这种方法我也会,但就是太慢了,怎样能够快速地生成一个文件,就像网络蚂蚁刚开始下载是那样?
谢谢大家!
...全文
951 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhouBoTong 2005-10-20
  • 打赏
  • 举报
回复
up
Lee_seu 2005-10-20
  • 打赏
  • 举报
回复
pc上用了93。workstation上是6。
jspxnet 2005-10-20
  • 打赏
  • 举报
回复
import java.io.*;

public class test
{
public test()
{
}

public static void main(String[] args)
{
try {
long lo = System.currentTimeMillis();
java.io.RandomAccessFile raf = new java.io.RandomAccessFile("d:/abc.txt", "rw");
raf.setLength(1024 * 1024 * 1024);
System.out.print(System.currentTimeMillis() - lo);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

如果楼主要使用这个方法,建议搂主创建空文件后不要关闭.传给下载的程序直接使用RandomAccessFile raf填冲文件类容
zhaidafan 2005-10-20
  • 打赏
  • 举报
回复
顶上去
jackson15879736 2005-10-15
  • 打赏
  • 举报
回复
谁有详细点的 JDK 啊谢谢了
majy 2005-10-14
  • 打赏
  • 举报
回复
那样要涉及到底层磁盘I/O操作的,Java恐怕是做不来的吧
Yanbin_Q 2005-10-14
  • 打赏
  • 举报
回复
你想做垃圾程序啊
trumplet 2005-10-14
  • 打赏
  • 举报
回复
准确地说,应该是与硬件有关,放到P2的机器上,可能要10分钟呢(瞎猜)。
zhaidafan 2005-10-14
  • 打赏
  • 举报
回复
楼上的我运行你那段程序怎么要用34秒?难道是SDK版本不同吗?
另外我看API手册上讲:如果setLength的参数比文件实际长度大,“the contents of the extended portion of the file are not defined”,但是我生成的文件为什么所有的字节都是“0”?我估计时间都浪费在写文件内容上了,但问题是怎样让setLength仅生成文件呢?还是有别的方法?
谢谢各位

F:\>java -version
java version "1.5.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07)
Java HotSpot(TM) Client VM (build 1.5.0_03-b07, mixed mode, sharing)

F:\>java test
34203
F:\>
紫炎圣骑 2005-10-14
  • 打赏
  • 举报
回复
楼上的有没有搞错?你生成的是1G多的文件

我测了一下好像要20秒左右
iwlk 2005-10-14
  • 打赏
  • 举报
回复
import java.io.*;

public class test
{
public test()
{
}

public static void main(String[] args)
{
try {
long lo = System.currentTimeMillis();
java.io.RandomAccessFile raf = new java.io.RandomAccessFile("d:/abc.txt", "rw");
raf.setLength(1024 * 1024 * 1024);
raf.close();
System.out.print(System.currentTimeMillis() - lo);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}


cmd:

D:\test\classes>java test
0


楼主我测试: 需要时间为0
zhaidafan 2005-10-14
  • 打赏
  • 举报
回复
用gtlang78()的方法生成一个500M的文件需要17秒左右,我刚才试了一下网络蚂蚁生成一个600M的文件也就1、2秒,人家到底是怎么弄的呢?
cocosunshine 2005-10-14
  • 打赏
  • 举报
回复
我觉得应该是通过流的方式判断下载文件的大小,然后进行创建这个一个文件对象。
gtlang78 2005-10-14
  • 打赏
  • 举报
回复
RandomAccessFile r = new RandomAccessFile(file, "rw");
r.setLength(size);
r.close();
zhaidafan 2005-10-14
  • 打赏
  • 举报
回复
我倒!我就是想做一个类似于网络蚂蚁的程序,所以要快速生成文件,绝对不是垃圾程序

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧