143

Is it possible to continue a long string on the next line in a Java properties file?

e.g., somehow

myStr=Hello
      World

and when I get getProperty("myStr") it will return with "Hello World"?

Pete
  • 16,534
  • 9
  • 40
  • 54
  • 3
    Actually it's **very important** to tell that after '\' **MUST NOT be nothing** even not a blank space ! – dobrivoje Jul 18 '17 at 15:36

3 Answers3

210

A backslash at the end of a line lets you break across multiple lines, and whitespace that starts a line is ignored:

myStr = Hello \
        World

Note: the backslash needs to be at the very end of the line; it must be the last character, no spaces after it, etc.

The Java docs put it this way:

A logical line holds all the data of a key-element pair, which may be spread out across several adjacent natural lines by escaping the line terminator sequence with a backslash character \.

...

If a logical line is spread across several natural lines, the backslash escaping the line terminator sequence, the line terminator sequence, and any white space at the start of the following line have no affect on the key or element values.

John Flatness
  • 32,469
  • 5
  • 79
  • 81
25

You need to use \n\ as a solution.

First two symbols \n - new line for string, third \ - multi-line in properties file.

For example (in application.properties):

mail.bodyText=Hello.\n\
This is notification.
Oleg Poltoratskii
  • 667
  • 11
  • 10
24
myStr = Hello \
        World

The backslash tells the application to continue reading the value onto the next line. ^^

Kent
  • 2,952
  • 2
  • 25
  • 42