Android上下载文件的大小大于下载大小

时间:2011-06-21 15:07:41

标签: android

从我的程序中的URL下载文件时,我有一个奇怪的事情。 我通过在设备和服务器上检查相同文件的大小来检查服务器上文件的可用更新。当我使用URLConnection类的getContentLength方法我得到一个大小,然后我下载并检查下载的大小字节,下载并获得相同的大小。但是当我查看SDCard上文件的大小时,它们大约是1.4倍。为什么会这样? 所以,基本上我下载一个大小并在SDCard上得到不同,这就是为什么我不能通过询问服务器来检查它们是否更新。 URL为https类型,文件为.ics

2 个答案:

答案 0 :(得分:0)

这可能是由于文件系统开销造成的。我假设你正在写一个FAT32 SD卡,在这种情况下,在某些情况下可能会有很大的开销。

根据维基百科(http://en.wikipedia.org/wiki/File_Allocation_Table):

  

“但请注意,文件是以群集为单位分配的,因此如果1 kB文件驻留在32 kB群集中,则会浪费31 kB。”

如果可能,请考虑尝试使用大文件或不同大小的文件,并查看预期大小与实际大小的比例是否保持不变。

答案 1 :(得分:0)

解决。问题在于编码。我不得不使用OutputStreamWriter和第二个参数“UTF8”。这也解决了文中西里尔字母的问题。