2017-12-09 5 views
0

큰 텍스트 파일을 Android에서 매우 빠르게 작성하려면 어떻게해야합니까?
PrintWriter, BufferedWriter 및 FileWriter를 사용하여 몇 가지 테스트를했지만 의미있는 시차가 없으며 읽기에는 약 3 배의 시간이 소요됩니다.큰 텍스트 파일을 빠르게 작성하는 방법

+0

나는 당신이 얻을 수있는 한 빨리 이것을 추측한다. 읽기 및 쓰기 속도는 사용 된 하드웨어 기술에 의해 제한됩니다. – Henry

+0

'BufferedWriter'는 성능을 향상시켜야합니다 - 그렇지 않다면'BufferedWriter (Writer out, int sz)'생성자로 재생할 수 있습니다 – pskink

답변

1

Android는 저장 장치가있는 다른 모든 장치와 마찬가지로 쓰기 속도가 제한되어 있습니다.

파일 쓰기 및 읽기 속도를 향상시킬 수있는 유일한 방법은 더 나은 저장 장치를 얻는 것입니다 (안드로이드 장치에서는 쉽게 열 수 없으며 장치를 교체 할 수 없습니다).

파일 읽기 및 쓰기와 관련하여 하드웨어가 제한적입니다.

0

각 메모리에는 특정 블록과 페이지 크기가 있습니다. 쓰기가 플래시 메모리에서 어떻게 이루어지기 때문에 작은 덩어리로 쓰기 만하면됩니다.

sailfish:/storage/emulated/0 $ dd if=/dev/zero of=test bs=4k count=$((32*1024))                                                
32768+0 records in 
32768+0 records out 
134217728 bytes transferred in 0.521 secs (257615600 bytes/sec) 

1K 블록에 대한 또 다른 하나 : 작은 덩어리의

sailfish:/storage/emulated/0 $ dd if=/dev/zero of=test bs=1k count=$((128*1024))                                               
131072+0 records in 
131072+0 records out 
134217728 bytes transferred in 1.369 secs (98040707 bytes/sec) 

데이터 쓰기 속도가 느려 거의 3 배하게 여기

adb shell에서 dd 실행과 벤치 마크입니다. 메모리를 벤치마킹하여 하드웨어 제한에 도달했는지 확인하는 것이 좋습니다. 쓰기 버퍼 크기로 실험하십시오. 쓰기 도중 메모리가 진정 더 느리다면 더 이상 할 수있는 일이 없습니다.

0

더 빨리 file 읽기/쓰기는 java.nio 패키지를 살펴보십시오.

이 자바 NIO에 대한 좋은 article입니다

, 여기 당신은 IO 패키지

0

부여 Okio 스핀과 비교를 찾을 수 있습니다. 실제로 더 빠를 지 확실하지 않습니다.

관련 문제