2017-06-02 50 views
-2

我正在使用PrintWriter寫入輸出文件,但我正在處理大量數據。由於這個原因,文件大小可能會非常大,所以我想要一種方法來輸出到幾個文件,如果一個文件的大小變得太大。但似乎沒有一種支持的方式來做到這一點?如果尺寸變得太大,如何滾動PrintWriter輸出文件?

+0

請發表您的代碼。 – Michael

+0

當然有一種支持的方式:關閉它並創建一個用於寫入新文件/下一個文件的新文件。但是,這聽起來更像是你正在創建一個日誌文件,如果是這樣,爲什麼不使用一個日誌庫,它有內置的功能? – Andreas

+0

我有點嘗試過。我有一個StringBuilder,它也附加了行。當它超過一定的尺寸時,我關閉了printwriter,將它設置爲一個新的,並清除了StringBuilder(我似乎無法找到一種方法來跟蹤輸出文件的長度)。它的工作原理,但我覺得解決方案有點可疑。我以前使用過log4j,但是我不知道如何使用適當的RollingFileAppender作爲標準文本文件(不是HTML) – JesusMonroe

回答

0

您可以使用write(String s, int off, int len)方法只寫入一部分數據。打開多個輸出流並調整offsetlen參數,您應該能夠將數據分佈到多個文件中。

編號:https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html

+0

我認爲問題是關於很多寫道,隨着時間的推移最終會創建一個巨大的文件,而不是分裂自從print()調用。 – Andreas