2013-03-21 97 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可能是最佳解決方案。