java 檔案操作,如何在指定的位置插入內容 (不是替換內容) ?
光阴似箭催人老,日月如移越少年。
不存在真正意義上的插入文件,因為文件大小是確定的。所以只能用臨時檔案去替換原始檔。
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...
你參考下這個:
https://faceghost.com/questio...
不存在真正意義上的插入文件,因為文件大小是確定的。所以只能用臨時檔案去替換原始檔。
https://stackoverflow.com/que...
你參考下這個:
https://faceghost.com/questio...