Search
📘

16강. 파일 입출력

무단 도용 및 복제, 사용 저작권 안내 수업 목적 외에 모든 교안 자료를 무단으로 도용 (URL 연결, 복제, 공유), 불법으로 복사하여 배포하는 것을 금지합니다. 꼭 지켜주세요!

1. 안드로이드 저장소

안드로이드는 애플리케이션이 데이터를 저장할 수 있는 저장소를 두 가지로 제공하고 있다.
내부 저장소 : 애플리케이션을 통해서만 접근이 가능하다.
외부 저장소 : 단말기 내부의 공유 영역으로 모든 애플리케이션이 접근 가능하다. 단말기를 컴퓨터에 연결하면 탐색기를 통해 접근할 수 있는 영역을 의미한다.

2. 파일 입출력

내부 저장소 : openFileOutput, openFileInput
외부 저장소 : FileInputStream, FileOutputStream

3. 안드로이드 10의 외부 저장소

외부 저장소에 저장된 파일은 모든 애플리케이션이 자유롭게 접근할 수 있어 보안에 문제가 되었다.
이에 안드로이드 10에서는 외부 저장소에 제한을 두어 보안을 강화하게 되었다.
안드로이드 10에서는 외부 저장소의 정책을 무력화 할 수 있는 옵션이 있었으니 11부터는 이 옵션이 제거되어 외부 저장소의 자유로운 접근은 불가능하게 되었다.
이러한 외부 저장소를 Scoped Storage 정책이라 부른다.

4. Scoped Storage 정책

Scoped Storage는 다음과 같은 형태로 구성된다.
앱 데이터 폴더 : 읽고 쓰는데 권한이 필요가 없으며 해당 애플리이션만 접근이 가능하다. 애플리케이션 삭제 시 폴더도 같이 삭제된다.
미디어 파일들 : 사진, 동영상, 음원파일들을 저장하는 장소이다.
공용 파일들 : Downloads 폴더. 이 폴더에 저장된 파일은 모든 애플리케이션이 접근할 수 있다. 단, 코드를 통한 직접 접근은 불가능하고 단말기에 설치된 파일 관리 어플을 통해서만 접근이 가능하다. 즉, 파일 관리 어플을 실행해 사용자가 직접 파일을 선택해줘야 가능하다.

5. 학습 정리

정리
안드로이드는 외부 저장소와 내부 저장소를 제공하고 있다.
외부 저장소 및 내부 저장소 모두 파일 입출력이 가능하다.