繁体   English   中英

用Java替换数据的最快方法

[英]Fastest way to replace data in Java

我需要编写一个Java方法,该方法将:

  • 从数据表中检索HTML
  • 在HTML中搜索特定标记(嵌入在注释中)
  • 用更多HTML替换该标记

例如,原始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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM