2013-03-21 95 views
0

要打印的每个对象到一个文件中我使用此代码:如何将对象详细信息打印到文件?

def printToFile(f: java.io.File)(op: java.io.PrintWriter => Unit) { 
    val p = new java.io.PrintWriter(f) 
    try { op(p) } finally { p.close() } 
} 

printToFile(new java.io.File("c:\\csvfiles\\clean.csv"))(p => { 
    myObjectList.foreach(p.println) 
}) 

如何访问内myObjectList的对象和打印他们的属性值?我是否需要覆盖对象的toString方法,或者是否有其他方法?

+0

案例类获得一个自动提供的toString重写,它显示了parens中的类名和主构造器参数。它简约,但可用。 – 2013-03-21 15:24:49

+2

OP:在这种情况下,覆盖toString可能并不理想,因为它会将输出定制为csv格式;当需要更多格式时,这可能成为一个问题。一般来说,在对象上使用简洁易读的toString比使用特定格式更好。 – 2013-03-21 17:06:29

回答

1

您可以

myObjectList.foreach{ ob => p.println({ 
    /* Do whatever you need to do with ob that produces a string */ 
})} 

只要不管它是你正在做将针对集合认为它包含了类型的工作。否则,重写toString可能是最佳解决方案。