2013-10-01 27 views
-1

我需要在Android设备上分配(大)给定大小的文件。在fat32存储上创建大文件很慢

在大多数设备上进行如下操作并不花时间。

RandomAccessFile fileStream = new RandomAccessFile("test.txt", "rw"); 
fileStream.seek(FILE_SIZE - 1); 
fileStream.write(0); 

不幸的是两个设备上使用该FAT32其储存的操作似乎很慢(90-100secs。为2GB的文件)。

我也尝试使用java.nio,但我得到了相同的结果。

FileOutputStream fos = new FileOutputStream(f); 
FileChannel fc = fos.getChannel(); 
fc.position(FILE_SIZE - 1); 
fc.write(ByteBuffer.wrap(new byte[]{0})); 
fos.close(); 

任何想法如何加快这两个设备上的操作?

回答

0

这不是减慢你的fat32格式。它的总线速度,你的手机,SD卡时钟,处理器等等。只是不能责怪那种开销的格式。

+0

我在指责文件系统,因为这两个“慢”设备具有共同点而其他设备都没有。 – lou

0

有很多原因可能是您的问题的根源。首先,看看fat32 filesystem的局限性。此外,您的硬件可能会影响设备的性能。示例(使用四核1,6 GHz处理器拍摄1500万像素照片的速度与600 Mhz处理器相同)