我需要在 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();
知道如何在这两个设备上加快此操作吗?