0

我发现自己在我的应用程序模块周围传递 InputStream/OutputStream 对象。

我想知道是否更好- 将内容保存到磁盘并 在各种方法调用之间
传递类似Resource
的东西- 使用 byte[] 数组
而不是每次都处理流。

在这些情况下你的方法是什么?
谢谢

编辑:
我有一个控制器接收用户上传的文件。我有一个实用程序模块,它提供了一些功能来呈现文件。

utilityMethod(InputStream is, OutputStream os)

InputStream 中的文件是用户上传的文件。os 是与响应关联的流。我想知道是否最好使用实用程序方法将生成的文件保存在 .tmp 文件中并返回文件路径或字节 [] 等,并让控制器直接处理 outputStream。

4

2 回答 2

1

我尝试尽可能多地保留在 RAM 中(主要是因为性能原因,而且 RAM 很便宜)。所以我使用 aFileBackedBuffer来“保存”未知大小的数据。它有一个限制。当少于limit字节写入它时,它会将它们保存在内部缓冲区中。如果写入更多数据,我将创建实际文件。此类具有从中获取 anInputStream和 an 的方法OutputStream,因此使用代码不会受到琐碎细节的困扰。

于 2009-11-16T15:16:55.427 回答
0

答案实际上取决于我们不知道的问题的上下文。

所以,想象一下最通用的情况,我会创建两个抽象。第一个抽象将InputStream/OutputStream作为参数,而另一个将byte[]. 采用流的那个可以读取数据并将数据传递给 byte[] 实现。因此,现在您的用户可以根据他们的需求/舒适度同时使用流抽象和 byte[] 抽象。

于 2009-11-16T15:16:44.410 回答