2011-01-27 24 views
2

我遇到FileBackedOutputStreamGoogle Guava庫,並想知道它是否適合用作緩衝區類型:每天一次,我的web應用程序中的進程會生成數以萬計的行包含約100個字符),然後上傳到FTP服務器上的文件。我正在考慮使用FileBackedOutputStream對象首先將所有這些字符串寫入,然後使用FileBackedOutputStream.getSupplier().getInput()訪問我的FTP客戶端,它將返回InputStream。這是否是FileBackedOutputStream的正確用例?FileBackedOutputStream用例(番石榴)

+0

如果你想要一個InputStream,爲什麼不使用ByteArrayOutputStream和ByteArrayInputStream?它可能更簡單,更高效。 – 2011-01-27 14:01:23

回答

2

是的,我認爲這將是一個可接受的用例FileBackedOutputStream。不過,我認爲FileBackedOutputStream最適合用於數據可能相差很大的數據......對於少量數據可以適應內存而不會出現問題的情況下,您只需將它們緩存在內存中,但對於大量數據可能會給你一個OutOfMemoryError如果你試圖把它全部讀到內存中,你想切換到緩衝到一個文件。這是我認爲FileBackedOutputStream真正閃耀的地方。我用它來緩衝我需要做的幾件事情上傳的文件。