-1

Android デバイスで指定されたサイズの (大きい) ファイルを割り当てる必要があります。

次のようにすると、ほとんどのデバイスで時間がかかりません。

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

残念ながら、ストレージに fat32 を使用する 2 つのデバイスでは、操作が非常に遅いようです (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();

これら2つのデバイスでこの操作を高速化する方法はありますか?

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 に答える