2013-10-01 3 views
-1

크기가 큰 (큰) 파일을 Android 장치에 할당해야합니다.대용량 파일을 만드는 것이 fat32 저장소에서 느립니다.

다음과 같이하면 대부분의 장치에 시간이 걸리지 않습니다. 자신의 창고를 위해 FAT32를 사용하는

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

불행하게도 두 가지의 장치 조작이 매우 느린 (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 프로세서를 사용하는 15 메가 픽셀 사진을 찍는 속도는 600 Mhz 프로세서와 같습니다.)