84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
Java file operation, how to insert content into the specified location (not replace content)?
光阴似箭催人老,日月如移越少年。
There is no real insertion of files because the file size is determined. So the source file can only be replaced with a temporary file.
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...
Please refer to this:
https://faceghost.com/questio...
There is no real insertion of files because the file size is determined. So the source file can only be replaced with a temporary file.
https://stackoverflow.com/que...
Please refer to this:
https://faceghost.com/questio...