-1

我需要在 Android 设备上分配(大)给定大小的文件。

在大多数设备上执行以下操作不需要时间。

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

不幸的是,在两个使用 fat32 作为存储设备的设备上,操作似乎很慢(90-100 秒。对于 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();

知道如何在这两个设备上加快此操作吗?

4

2 回答 2

0

那不是让你慢下来的 fat32 格式。它是您手机的总线速度、SD 卡时钟、处理器等。只是不能将格式归咎于那么多开销。

于 2013-10-01T14:38:52.020 回答
0

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

于 2013-10-01T15:00:14.783 回答