io - Opération de fichier Java, comment insérer du contenu (et non remplacer du contenu) à un emplacement spécifié ?
大家讲道理
大家讲道理 2017-06-12 09:24:18
0
2
831

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
phpcn_u1582

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

刘奇

Veuillez vous référer à ceci :

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!