Working with long strings (heredocs) in Java - the readable approach?

FolksLord picture FolksLord · May 29, 2012 · Viewed 10.8k times · Source

I need to work with long strings containing line breaks in Java. Those are for HTML generation, but it is not the most important here.

I'm aware Java is cripple in a way it doesn't have heredocs. But there are other mechanisms I could use:

1) String concatenation (or StringBuilders), not very readable and copy-pasteable.

2) Storing strings in .properties files, either not very readable, but with higher copypasteability.

3) Storing each "heredoc" in seperate .txt file, quite readable and copypasteable, but resulting in a horde of txt files.

4) Template engines, like Velocity or Freemarker - moves design out of Java, requires a lot of map operations, it would be quite good, but the Velocity syntax and loop/if abilities aren't as readable as for example those from Smarty

Each have pros and contras, I'd like to choose 3 but the management prefers 1 because of pure ideological reasons. I'd like to have some standard for working with heredocs in Java, possibly library that makes things easier. I'd be gratefull for any suggestions (with good arguments) how to work with heredocs.

Thanx

Answer

GreyBeardedGeek picture GreyBeardedGeek · May 30, 2012

I hate to be "that guy", who suggests that you take a completely different approach than what you asked about, but have you looked at Groovy? It's JVM language, can be mixed freely with Java, and in addition to a bunch of other really nice language features, it has heredocs.