0

我發現自己在我的應用程序模塊周圍傳遞了InputStream/OutputStream對象。Java項目模塊 - 使用InputStream/OutputStream或.tmpFile/byte []

我想知道如果這是更好地
- 將內容保存到磁盤,並通過類似的各種方法之間的Resource調用
- 使用一個byte []數組
而不必每次處理流。

在這些情況下你的方法是什麼?
感謝

編輯:
我已經接收由用戶上傳的文件的控制器。我有一個實用程序模塊,提供一些功能來呈現文件。

utilityMethod(InputStream is, OutputStream os) 

InputStream中的文件是用戶上傳的文件。 os是與響應關聯的流。我想知道是否最好有實用方法將生成的文件保存在.tmp文件中,並返回文件路徑或byte []等,並讓控制器直接處理outputStream。

+1

你使用什麼流,什麼是實際類型? – notnoop 2009-11-16 15:11:14

回答

1

我儘可能地在RAM中保留儘可能多的內容(主要是因爲性能原因和RAM很便宜)。所以我使用FileBackedBuffer來「保存」未知大小的數據。它有一個限制。當寫入小於limit字節時,它會將它們保存在內部緩衝區中。如果寫入更多數據,我將創建實際的文件。這個類有方法從中獲得InputStreamOutputStream,所以使用代碼不會受到細節的困擾。

0

答案實際上取決於問題的背景,我們不知道。

因此,想象最通用的情況下,我會創建兩個抽象。第一個抽象將採用InputStream/OutputStream作爲參數,而另一個將採取byte[]. 採用流的流可以讀取並將數據傳遞給byte []實現。所以,現在你的用戶可以根據他們的需要/舒適度使用流抽象和byte []抽象。