我想知道是否有任何利用Groovy将新行写入文件的简洁方法。我有以下脚本:
new File("out.txt").withWriter{ writer ->
for(line in 0..100) {
writer << "$line"
}
}
我可以使用writer << "$line\n"
或writer.println("$line")
,但如果有任何方法可以使用<<
运算符为我添加新行,我会感到非常满意。
答案 0 :(得分:6)
您可以使用元编程来创建该功能。一种简单的解决方案来改变&lt;&lt;&lt;&lt;&lt;运营商将使用自定义类别。
示例:
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"
}
}
有关此类别的更多信息: http://docs.codehaus.org/display/GROOVY/Groovy+Categories
答案 1 :(得分:6)
向系统询问正确的行分隔符是个好主意,因为它们可以在操作系统之间进行更改。
writer << "Line 1" + System.getProperty("line.separator") + "Line 2"
答案 2 :(得分:0)
你试过吗
writer << "$line" << "\n"
这是
的简写writer << "$line"
writer << "\n"
答案 3 :(得分:0)
或者您可以只使用三个双引号
例如
def multilineString = """
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
"""
println multilineString