Rumah  >  Soal Jawab  >  teks badan

io - operasi fail java, bagaimana untuk memasukkan kandungan (bukan menggantikan kandungan) ke lokasi yang ditentukan?

Pengendalian fail Java, bagaimana untuk memasukkan kandungan ke lokasi yang ditentukan (bukan menggantikan kandungan)?

大家讲道理大家讲道理2686 hari yang lalu816

membalas semua(2)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-06-12 09:26:18

    Tiada sisipan fail sebenar kerana saiz fail ditentukan. Jadi fail sumber hanya boleh digantikan dengan fail sementara.

    public void insert(String filename, long offset, byte[] content) {
      RandomAccessFile r = new RandomAccessFile(new File(filename), "rw");
      RandomAccessFile rtemp = new RandomAccessFile(new File(filename + "~"), "rw");
      long fileSize = r.length();
      FileChannel sourceChannel = r.getChannel();
      FileChannel targetChannel = rtemp.getChannel();
      sourceChannel.transferTo(offset, (fileSize - offset), targetChannel);
      sourceChannel.truncate(offset);
      r.seek(offset);
      r.write(content);
      long newOffset = r.getFilePointer();
      targetChannel.position(0L);
      sourceChannel.transferFrom(targetChannel, newOffset, (fileSize - offset));
      sourceChannel.close();
      targetChannel.close();
    }
    

    https://stackoverflow.com/que...

    balas
    0
  • 怪我咯

    怪我咯2017-06-12 09:26:18

    Sila rujuk ini:

    https://faceghost.com/questio...

    balas
    0
  • Batalbalas