Si bien podría utilizar ciertos formateadores para convertir e incrustar cualquier archivo de texto o literal largo como una cadena de Java (por ejemplo, con saltos de nueva línea, los escapes necesarios, etc.), no puedo pensar en situaciones frecuentes donde necesitarías estas capacidades.
La tendencia del software generalmente es separar el código de los datos en los que opera. Las secciones de texto grandes, aunque solo sean para visualización o comparación, son datos y, por lo tanto, típicamente se almacenan externamente. El costo de leer un archivo (o incluso almacenar en caché el resultado en la memoria) es bastante bajo. La internacionalización es más fácil. Cambiar es más fácil. El control de versiones es más fácil. Se pueden usar fácilmente otras herramientas (por ejemplo, correctores ortográficos).
Acepto que en el caso de pruebas unitarias en las que desee comparar elementos con un simulacro, necesitará comparaciones de texto a gran escala. Sin embargo, cuando maneja archivos tan grandes, normalmente tendrá pruebas que pueden funcionar en varias entradas grandes diferentes para producir varias salidas de gran tamaño, así que ¿por qué no simplemente hacer que su prueba cargue los archivos apropiados en lugar de en línea?
Lo mismo ocurre con XML. De hecho, para XML, argumentaría que en muchos casos desearía leer el XML y construir un árbol DOM que luego compararía en lugar de hacer una comparación de texto que puede verse afectada por espacios en blanco. Y crear manualmente un árbol XML en su unidad de prueba es feo.
Ver también: http://stackoverflow.com/questions/878573/java-multiline-string (misma pregunta; publicado más tarde, pero con muchas respuestas OK) –