2013-10-01 55 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處理器相同)