Java 如何更快地加载internet输入流?

Java 如何更快地加载internet输入流?,java,android,inputstream,httpresponse,Java,Android,Inputstream,Httpresponse,我正在开发一个Android应用程序,它可以与web服务进行通信。Web服务会给我一些几何体文件,因此这些文件会变得非常大 因为你不能等待1-3分钟直到你得到响应,我需要降低加载时间 下面是一些代码: long startTime = System.currentTimeMillis(); InputStream is = httpResponse.getEntity().getContent(); ByteArrayOutputStream buffer = new Byte

我正在开发一个Android应用程序,它可以与web服务进行通信。Web服务会给我一些几何体文件,因此这些文件会变得非常大

因为你不能等待1-3分钟直到你得到响应,我需要降低加载时间

下面是一些代码:

long startTime = System.currentTimeMillis(); InputStream is = httpResponse.getEntity().getContent(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int nRead; byte[] data = new byte[1000000]; while ((nRead = is.read(data, 0, data.length)) != -1) { buffer.write(data, 0, nRead); } long endTime = System.currentTimeMillis(); Log.d("ARks", (endTime - startTime) / 1000 + " seconds"); long startTime=System.currentTimeMillis(); InputStream is=httpResponse.getEntity().getContent(); ByteArrayOutputStream缓冲区=新建ByteArrayOutputStream(); 国际nRead; 字节[]数据=新字节[1000000]; 而((nRead=is.read(data,0,data.length))!=-1){ 写入(数据,0,nRead); } long-endTime=System.currentTimeMillis(); Log.d(“ARks”(结束时间-开始时间)/1000+秒); 执行此操作所需的时间始终在50到75秒之间(对于较小的文件而言)

有没有办法加快速度?也许是一些Android特有的东西让应用程序有更多的带宽?

如果你知道带宽是你的问题,压缩你的流:


如果在处理数据之前不需要所有数据,请减小缓冲区的大小。这将允许您在其他对象通过连接时处理某些对象。

我不需要在服务器上压缩流并直接将压缩流发送给我的客户端吗?@peterknukeoberruner-是的,但作为新用户,我只能在答案中添加一个链接。您想在答案中添加什么链接?哦我没有足够的权限编辑服务器代码:/@PeterknukeOberRuner-我会为
gzip输入流
(对于客户端)和
gzip输出流
(对于服务器)添加链接。然而,一旦你找到一个,另一个很容易找到:-)