[android] 안드로이드 파일 시스템과 파일 생성 방법

안드로이드 앱을 개발하다보면 파일을 다루는 일이 자주 발생합니다. 여러분은 데이터를 저장하거나 로컬로 파일을 다운로드하여 저장할 수 있습니다. 안드로이드에서는 내부 저장소와 외부 저장소 두 가지 유형의 파일 시스템을 제공합니다.

내부 저장소

내부 저장소는 앱에게 할당된 고유한 영역으로, 다른 앱이 접근할 수 없습니다. 내부 저장소에 파일을 저장하려면 ContextopenFileOutput() 메서드를 사용합니다. 내부 저장소의 파일들은 /data/data/your_package_name/files/ 경로에 저장됩니다.

// 파일을 내부 저장소에 생성하는 예시
String filename = "myfile.txt";
String fileContents = "Hello world!";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  outputStream.write(fileContents.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

외부 저장소

외부 저장소는 앱 외부에 위치한 저장소로, 앱 외부에서도 접근 가능합니다. 외부 저장소에 파일을 저장하려면 외부 저장소의 상태를 확인하고 권한을 요청해야 합니다.

// 외부 저장소의 상태 확인하는 예시
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
    // 외부 저장소 사용 가능
    // 파일을 외부 저장소에 생성하는 코드를 작성하세요
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    // 외부 저장소는 읽기 전용
} else {
    // 외부 저장소를 사용할 수 없음
}

파일 시스템 권한

외부 저장소를 사용하려면 AndroidManifest.xml 파일에 다음과 같은 권한을 추가해야 합니다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

결론

안드로이드에서는 내부 저장소와 외부 저장소 두 가지 파일 시스템을 제공하며, 각각 다른 방식으로 파일을 생성하고 접근할 수 있습니다. 파일을 다룰 때는 사용자의 데이터 손실을 방지하고 보안에 신경을 써야 합니다.