【发布时间】:2013-05-02 04:28:39
【问题描述】:
假设我有一个程序可以生成一个名为 data.bin 的二进制文件,然后我使用 data.write(item) 向它写入一堆随机信息,例如:
RandomAccessFile data = new RandomAccessFile("data.bin","rws");
Random r = new Random(482010);
Scanner input = new Scanner(System.in);
int number = 100;
byte[] item = new byte[1024];
System.out.print("How many items (perhaps 800000)\n> ");
number = input.nextInt();
for (int i=0; i<number; i++) {
r.nextBytes(item);
data.write(item);
}
data.close();
System.out.println("Done");
现在,一旦该文件被完全写入,如果我再次执行 data.write(item),它会覆盖该文件中的所有信息吗?还是继续添加到结尾?
【问题讨论】:
-
何不自己测试一下看看,或者看看the documentation找不到答案?
-
我不会使用“rws”,因为它比“rw”慢很多,而且我看不出它对你有什么帮助。我会使用普通的 FileOutputStream,因为这样可以很清楚您是覆盖还是追加。
-
由于您每次都使用相同的随机种子,您应该写入相同的随机数据,因此如果您覆盖文件,相同长度的文件看起来也完全相同。
标签: java file io overwrite randomaccessfile