我正在使用Groovy在.csv文件中執行一些大量寫入操作。更具體地說,我有一個正在運行的Quartz作業,並創建一些發送到RabbitMQ隊列的Map消息。該隊列正在被10位消費者使用,並導致生成一些字符串列表。對於列表中的每個元素,我只是將它寫入一個以管道分隔的.csv文件中。具有寫入.csv文件的方法的實際服務是標準(單例)事務性Grails服務。當我登錄要寫入的行時,一切正常,但在文件中,某些行被「破壞」。我寫的方法是:使用Groovy(Grails)寫入文件的某些行(虛線)失敗
def writeRowsToFile(List<String> rows, File file) {
rows.each {row->
file.append("${row}\n")
}
}
起初我是用:
file.withWriterAppend {out->
out.write(row.toString())
out.newLine()
}
,並得到了同樣的事情,以及...
如果它是什麼不對,將無法爲所有線。它可能是某種競爭條件,併發或者我不知道還有什麼問題?
任何幫助將不勝感激。
感謝
\n
字符由「破」我的意思是,並不是所有的字符串寫入行,一些反覆。這條線是一半寫的。我附上了我用來寫入文件的代碼。我正在編寫的String對象,從我在日誌中看到的內容都很好,但是當它們寫入文件時,其中的一部分未完全寫入。 – Iraklis 2011-02-24 12:02:17