我需要在Android设备上分配(大)给定大小的文件。
在大多数设备上执行以下操作都不会花时间。
RandomAccessFile fileStream = new RandomAccessFile("test.txt", "rw");
fileStream.seek(FILE_SIZE - 1);
fileStream.write(0);
不幸的是,在两个使用fat32作为存储设备的设备上,操作似乎很慢(对于2GB文件,为90-100秒。)
我也尝试过使用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 :(得分:0)
这不是fat32格式,这会减慢你的速度。它的手机总线速度,SD卡时钟,处理器等。只是无法将这种格式归咎于这种格式。
答案 1 :(得分:0)
有许多原因可能是您的问题的根源。首先,看看fat32 filesystem的局限性。您的硬件也可能会影响设备的性能。示例(使用四核1.6 Ghz处理器拍摄1500万像素照片的速度与600 Mhz处理器相同)