기기 저장소에 파일 저장

Android는 다른 플랫폼의 디스크 기반 파일 시스템과 유사한 파일 시스템을 사용합니다. 이 페이지에서는 Android 파일 시스템에서 File API를 사용하여 파일을 읽고 쓰는 방법을 설명합니다.

File 개체는 대용량 데이터를 건너뛰지 않고 처음부터 끝까지 순서대로 읽거나 쓸 때 매우 효과적입니다. 예를 들어 네트워크를 통해 교환되는 이미지 파일 또는 기타 항목에 적합합니다.

파일을 저장할 수 있는 정확한 위치는 기기마다 다를 수 있으므로 절대 파일 경로를 사용하는 대신 이 페이지에 설명된 메서드를 사용하여 내부 및 외부 저장소 경로에 액세스해야 합니다.

기기에서 파일을 보려면 File.getAbsolutePath()와 같은 메서드에 의해 제공된 파일 위치를 로깅한 후 Android Studio의 Device File Explorer를 사용해 기기의 파일을 탐색할 수 있습니다.

내부 또는 외부 저장소 선택

모든 Android 기기에는 두 가지 파일 저장소 영역인 내부 저장소외부 저장소가 있습니다. 이러한 두 저장소의 이름은 Android 초창기에 만들어졌습니다. 당시 대부분의 기기가 비휘발성 내장 메모리(내부 저장소) 및 마이크로 SD 카드와 같은 이동식 저장 매체(외부 저장소)를 제공했습니다. 지금은 많은 기기가 영구적인 저장공간을 별도의 '내부' 및 '외부' 파티션으로 분할합니다. 따라서 이동식 저장 매체가 없어도 이러한 두 저장공간은 항상 존재하며, 외부 저장소의 착탈 여부와 관계없이 API 동작은 동일합니다.

외부 저장소는 착탈이 가능할 수 있으므로 이러한 두 옵션 간에는 다음과 같이 몇 가지 차이점이 있습니다.

내부 저장소:

  • 항상 사용 가능합니다.
  • 여기에 저장된 파일은 앱에서만 액세스할 수 있습니다.
  • 사용자가 앱을 제거하면 시스템이 내부 저장소에서 앱의 모든 파일을 삭제합니다.

내부 저장소는 사용자나 다른 앱이 개발자의 파일에 액세스할 수 없도록 하려는 경우에 적합합니다.

외부 저장소:

  • 항상 사용 가능하지는 않습니다. 사용자가 USB 저장소와 같은 외부 저장소를 마운트하고 경우에 따라 기기에서 외부 저장소를 제거할 수 있기 때문입니다.
  • 누구나 읽을 수 있으므로 여기에 저장된 파일은 개발자가 제어할 수 있는 범위 밖의 다른 사람도 읽을 수 있습니다.
  • 사용자가 앱을 제거하면 getExternalFilesDir()의 디렉터리에 앱 파일이 저장된 경우에만 시스템이 외부 저장소에서 앱 파일을 삭제합니다.

외부 저장소는 액세스 제한이 필요하지 않은 파일 및 다른 앱과 공유하려는 파일 또는 사용자가 컴퓨터에서 액세스하도록 허용하려는 파일에 적합합니다.

참고: 기본적으로 앱은 내부 저장소에 설치되지만 매니페스트에 android:installLocation 속성을 지정하여 외부 저장소에 설치할 수도 있습니다. APK 크기가 매우 크고 외부 저장소 공간이 내부 저장소 공간보다 더 클 때 사용자는 이 옵션을 유용하게 활용할 수 있습니다. 자세한 내용은 앱 설치 위치를 참조하세요.

추가 리소스

기기의 저장소에 파일을 저장하는 방법에 관한 자세한 내용은 다음 리소스를 참조하세요.

Codelab