Maison  >  Questions et réponses  >  le corps du texte

io - Opération de fichier Java, comment insérer du contenu (et non remplacer du contenu) à un emplacement spécifié ?

Opération sur un fichier Java, comment insérer du contenu dans un emplacement spécifié (et non remplacer le contenu) ?

大家讲道理大家讲道理2686 Il y a quelques jours811

répondre à tous(2)je répondrai

  • phpcn_u1582

    phpcn_u15822017-06-12 09:26:18

    Il n'y a pas de véritable insertion de fichiers car la taille du fichier est déterminée. Le fichier source ne peut donc être remplacé que par un fichier temporaire.

    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...

    répondre
    0
  • 怪我咯

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

    Veuillez vous référer à ceci :

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

    répondre
    0
  • Annulerrépondre