我想在文本文件中间添加几行而不覆盖或删除文本文件中已有的现有数据.例如:
在插入新线之前
ABCD1A_GNHM_MODL_LEWLA
ABCD12A_GGHM_MODL_LEWLA
ABCD13A_GEHM_MODL_LEWLA
ABCD14A_GHHM_MODL_LEWLA
ABCD12A_GGHM_MODL_LEWLA
ABCD1AW_GVHM_MODL_LEWLA
ABCD1R_GGHB_MODL_LEWLA
ABCD1R_GCHM_MODL_LEWLA
Run Code Online (Sandbox Code Playgroud)
插入新行后
ABCD1A_GNHM_MODL_LEWLA
ABCD12A_GGHM_MODL_LEWLA
ABCD13A_GEHM_MODL_LEWLA
ABCD14A_GHHM_MODL_LEWLA
AAAAAAA_VVVV_vVVVV_vvVV9 ---- THIS LINE IS INSERTED
AAEEEE_VVVV_vVVVV_vvVV9 ------THIS LINE IS INSERTED
ABCD12A_GGHM_MODL_LEWLA
ABCD1AW_GVHM_MODL_LEWLA
ABCD1R_GGHB_MODL_LEWLA
ABCD1R_GCHM_MODL_LEWLA
Run Code Online (Sandbox Code Playgroud)
对于跟踪之后我需要插入数据的行依赖于要求,现在考虑在第4行后我需要插入两行.
谁能建议我怎么做?
这归结为文件的工作方式.除了再次写入文件的其余部分之外没有任何其他方式,如果它是一个长文件,这将是昂贵的.只追加到最后是相对便宜的.
并且不要忘记,磁盘上的文件并不关心端点 - 我们在这里讨论字节,而不是字符串的集合.
您最好的选择可能是创建一个全新的文件,在首先插入数据之前复制数据,然后添加数据,然后继续复制文件的其余部分.
短篇小说:你不能在文件中间插入任何东西.你总是会覆盖.您必须至少从插入位置向前写入所有字节.