使用RandomAccessFile#write()写入文件

时间:2013-05-08 03:38:52

标签: java file io overwrite randomaccessfile

假设我有一个程序生成一个名为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)会覆盖该文件中的所有信息吗?还是继续添加到它的末尾?

1 个答案:

答案 0 :(得分:0)

是的,因为你已经关闭了文件,当前位置会转到文件的开头,现在如果你说data.write,数据会被覆盖。如果你还没有关闭文件,那么当你说data.write时它会在文件末尾继续。