首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Streaming“

"Streaming“
EN

Stack Overflow用户
提问于 2012-07-23 21:00:11
回答 4查看 3.4K关注 0票数 4

我引用Apache提供的Commons FileUpload

本页描述了公用文件库的传统API。传统的API是一种方便的方法。然而,为了最终的性能,您可能更喜欢更快的流API。

我的问题

哪些具体的差异使Streaming APItraditional API更快?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-27 22:55:34

关键的区别在于您处理文件的方式,正如您自己在工厂类中注意到的那样。

流API在获取输入流时没有保存在磁盘中。最后,您将能够更快地处理该文件(占用临时内存).但是,这样做的目的是避免将二进制文件保存在磁盘中,除非您真的希望/需要这样做。

之后,您可以使用bufferedinputstream、字节数组或类似的方式将数据保存到磁盘中。

编辑:打开流时的处理程序( fileItemStreamElement.openStream() )是一个常见的InputStream实例。所以,您的“如果它是一个大文件怎么办”的答案是类似于这个Java中InputStream的内存问题

编辑:流API不应该保存到磁盘或内存中。它只提供一个可以读取的流,以便将文件复制到任何您想要的位置。这是一种避免拥有临时目录的方法,也避免分配足够的内存来保存文件。这应该更快,至少因为它不会被复制两次,一次从浏览器复制到磁盘/内存,然后再从磁盘/内存复制到保存它的地方。

票数 5
EN

Stack Overflow用户

发布于 2012-07-23 21:41:24

在“用户指南”中描述的传统API假定,文件项必须存储在某个地方,然后才能被用户实际访问。这种方法很方便,因为它允许很容易地访问项内容。另一方面,它是内存和时间消耗。

http://commons.apache.org/fileupload/streaming.html

票数 0
EN

Stack Overflow用户

发布于 2013-01-03 15:25:38

流API不应该保存到磁盘或内存中。它只提供一个可以读取的流,以便将文件复制到任何您想要的位置。这是一种避免拥有临时目录的方法,也避免分配足够的内存来保存文件。这应该更快,至少因为它不会被复制两次,一次从浏览器复制到磁盘/内存,然后再从磁盘/内存复制到保存它的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11620432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档