如何在Groovy中整齐地打印新行?

时间:2010-09-15 13:45:56

标签: groovy

我想知道是否有任何利用Groovy将新行写入文件的简洁方法。我有以下脚本:

new File("out.txt").withWriter{ writer ->
    for(line in 0..100) {
            writer << "$line"
    }
}

我可以使用writer << "$line\n"writer.println("$line"),但如果有任何方法可以使用<<运算符为我添加新行,我会感到非常满意。

4 个答案:

答案 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

参考:http://grails.asia/groovy-multiline-string