[英]Fastest way to replace data in Java
我需要编写一个Java方法,该方法将:
例如,原始HTML可以具有页面标题,标记和页面页脚。 我想获取该HTML并将标记替换为页面内容,例如博客文章。
我主要关心的是速度和功能。 由于原始HTML和要注入原始HTML的HTML可能很大,因此我需要一些建议。
我知道我可以使用Strings和String.replace(),但是我担心String的大小限制以及执行速度如何。
我也在考虑使用Reader / Writer对象,但是我不知道这样是否会更快。
我知道有一个Java Clob对象,但是我真的不知道它是否可以用于我的特定情况。
任何想法/建议都将受到欢迎。
谢谢,
提姆
使用读取器流式传输数据,即时解析它以找到标签,并在使用Writer进行流式传输时替换数据。
是的,您必须编写一个解析器才能执行此操作。
不要将其加载到大缓冲区中,进行搜索和正则表达式以及缓冲区中的所有内容,然后将其写出。 一次处理数据是您最快的操作。
如果文件中的数据较晚,将在文件中填充较高的位置,则您将陷入困境。
最后,为什么不只使用Apache Velocity之类的东西呢?
您的HTML有多大? 一个千兆字节? 一兆字节? 100k? 10k? 除了第一个以外,所有其他操作都很好。 如果该答案不能满足您的要求,请使用indexOf()
查找标记的开始和结束,并使用substring()
前后写入原始字符串的各个部分。
StringBuilder (不是线程安全的)和StringBuffer (线程安全的)是String操作的两种基本构造。 但是,如果您要从流中读取数据,则最好是即时进行处理。 (读取行,查找标记,如果找到,则写内容代替它)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.