问题描述
如何替换文件中的一行字符串?(也可以是如何在某非结尾行添加数据)已知条件:1:每一行的内容是唯一可识别的2:替换的字串Astr.length()是不确定的,即假设替换字串为Astr,被替换字串为Bstr,以下情况都有可能存在:Astr.length()<Bstr.length()Astr.length()==Bstr.length()Astr.length()>Bstr.length()3:解决方案语言随意,最好java吧。。。。其它的语言希望有讲解~~最好满足下列要求:1:从头到尾只涉及一个文件2:不能把文件中的所有内容都取出来放到内存中3:替换完成后,文件其余部分内容不能改变,位置可以更改4:替换完成后不存在空白行
解决方案
解决方案二:
如何替换文件中的一行字符串不可以替换,只能是把需要替换的行标记为丢弃,然后在文件尾加上新的一行。
解决方案三:
我觉得也只有一楼的办法了,这里的要求有点苛刻。
解决方案四:
1楼的标记再添加必然会造成数据的冗余,现在我想在某个时间删除冗余的数据,选择的方案是把原来文件的内容拷贝到另一“缓冲文件”中,再把源文件的所有数据清空之后,将“缓冲文件中”的数据送回到源文件,删掉缓冲文件。这其中多了一个“缓冲文件”,感觉增加了很多“额外”操作,是否有更好的解决思路?
解决方案五:
其实这是一个小型的文件系统的概念。如果文件格式不能改变,在替换的字符串大于原字符串的时候,用1楼的办法,或其他变通的办法;如在索引表里保存下面接哪一块的数据。如果文件格式可以改变,那么,就需要把文件格式设计的复杂一些。
时间: 2024-09-12 05:07:20