前言
最近在学习研究写文件生成器,中间遇到一个问题。 就是,在生成了Activity之后,在Manifest文件中增加一个的标签,如果我要删除文件,也要从Manifest中清除这个标签。 做法很简单,就是读取清单文件,然后往Application标签中插入一段新增的Activity标签。如果要删除,就读取清单文件,然后把里面这段Activity标签给移除掉。 具体代码描述就是: 1、生成的时候,读取file文件内容,然后indexOf Application标签,然后substring(0 - index) + activity标签代码 + sub( index - length),然后再写入,这样就增加了代码 2、删除的时候,读取file文件内容,然后直接replace 原来那段Activity标签代码为"" 空字符串
问题
逻辑很简单,但是却发现无论如何都没有达到replace的效果,测试contains,也依旧返回false,百思不得其解,调试N次,检查代码以及Activity标签代码,都无误。Android studio用对比工具进行比对也没有任何问题一模一样



总结
这里再说一下\r 和\n的区别
\r 回车是将光标移到一行的前面, n 是移到下一行,相当于换行。
出个简单的题:
System.out.print("第一行")
System.out.print("第1段\r")
System.out.print("1")
System.out.print("第二行")
System.out.print("第2段\r\n")
System.out.print("第三行")
打印出来是什么? 直接说答案
1第二行第2段
第三行
对,你没有看错。 出现这种效果的原因是,/r是回到这行的前面,那么“第二行第二段”就从第一行开始,覆盖了原来的第一行了。 所以,请大家以后记住,对文件的操作,如果是直接copy的,那么记得回车是**\r\n**!