【问题标题】:Download size larger than available stream/file size. (Asha 501, J2ME)下载大小大于可用流/文件大小。 (阿莎 501,J2ME)
【发布时间】:2013-12-27 15:24:37
【问题描述】:

我正在尝试下载歌曲文件。以下代码(嗯,原始代码,这只是我正在做的一个示例)在 Asha 310 设备上完美运行。但是,在较新的 Asha 501 设备上,生成的下载文件远大于实际文件大小。 如果我使用 512 缓冲区,一个 2.455.870 字节的文件最终会下载 2.505.215 字节,并且它也不会加载。使用 4096 缓冲区,文件最终大小为 3.342.335 字节!!

发生这种情况的原因可能是什么?它在另一部手机上运行良好,而且我正在使用非常合理的缓冲区。

    downloadedFile = (FileConnection) Connector.open(saveLocation+"testing.m4a", Connector.READ_WRITE);

    if (!downloadedFile.exists()) {
        downloadedFile.create();
    }

    ops = downloadedFile.openOutputStream();
    hc = (HttpConnection) Connector.open(url);
    hc.setRequestMethod(HttpsConnection.POST);
    hc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

    String postData = "sid=" + session.sid + "&fileid=" + file.getId();

    byte[] request_body = postData.getBytes();

    DataOutputStream dos = null;
    dos = hc.openDataOutputStream();
    for (int i = 0; i < request_body.length; i++) {
        dos.writeByte(request_body[i]);
    }

    byte[] buf = new byte[512];

    dis = hc.openInputStream();
    int downloadSize = 0;

    while (dis.read(buf) != -1) {

        ops.write(buf, 0, buf.length);

        downloadedSize += buf.length;            

    }

【问题讨论】:

  • 我认为您应该专门针对此查询尝试developer.nokia.com/Community/Discussion/forum.php
  • 我已经在那里发帖了。好吧,在 Asha 小节。但是有点急事,所以我也在这里发帖。
  • 嗯。我以前在 j2me 上工作过。这些问题很常见!
  • 我知道.. 这很痛苦.. 希望我能尽快完成 J2ME。 :(
  • 试试codenameone.com它很整洁

标签: java http java-me download


【解决方案1】:

原来缓冲区没有被完全填满,所以每个缓冲区的其余部分没有被填满是垃圾。这就解释了为什么当设置更大的缓冲区时,文件就更大,因为它有更多的垃圾。

http://developer.nokia.com/Community/Discussion/showthread.php/244179-Download-size-larger-than-available-stream-file-size-(Asha-501)

int len;
while((len=dis.read(buf))!=-1)
{
    ops.write(buf,0,len);
    downloadedSize += len;
}

编辑:它在旧手机上工作,因为它们一直用实际数据填充整个缓冲区。较新的设备没有。

【讨论】:

    猜你喜欢
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    相关资源
    最近更新 更多