How to neatly print new line in Groovy?
I was wondering if there is any neat way to write new line into the file from Groovy. I have the following script:
new File("out.txt").withWriter{ writer ->
for(line in 0..100) {
writer << "$line"
}
}
I could use writer << "$line\n"
or writer.println("$line")
, but I was wo开发者_运维技巧ndring if there is any way to use <<
operator to append the new line for me.
It's a nice idea to ask the system for the correct line separator as these can change between operating systems.
writer << "Line 1" + System.getProperty("line.separator") + "Line 2"
You could use meta programming to create that functionality. An easy solution to change the behaviour of the << operator would be to use a custom category.
Example:
class LeftShiftNewlineCategory {
static Writer leftShift(Writer self, Object value) {
self.append value + "\n"
}
}
use(LeftShiftNewlineCategory) {
new File('test.txt').withWriter { out ->
out << "test"
out << "test2"
}
}
More about categories here: http://docs.codehaus.org/display/GROOVY/Groovy+Categories
Or you could just use three double-quotes
e.g.
def multilineString = """
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
"""
println multilineString
Reference: http://grails.asia/groovy-multiline-string
Have you tried
writer << "$line" << "\n"
Which is shorthand for
writer << "$line"
writer << "\n"
精彩评论