我一直在写一个小应用程序,它可以让人们上传和下载文件给我。我已经向这个应用程序添加了一个 Web 服务,以这种方式提供上传/下载功能,但我不太确定我的实现将如何处理大文件。
目前上传和下载方法的定义如下所示(使用 Apache CXF 编写):
boolean uploadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename,
@WebParam(name = "fileContents") byte[] fileContents)
throws UploadException, LoginException;
byte[] downloadFile(@WebParam(name = "username") String username,
@WebParam(name = "password") String password,
@WebParam(name = "filename") String filename) throws DownloadException,
LoginException;
所以文件被上传和下载为一个字节数组。但是,如果我有一个大小愚蠢的文件(例如 1GB),这肯定会尝试将所有这些信息放入内存中并使我的服务崩溃。
所以我的问题是 - 是否可以返回某种流?我想这不会非常独立于操作系统。虽然我知道 Web 服务背后的理论,但我仍然需要了解一些实际信息。
为任何输入干杯,李