[flutter] 플러터에서 앱 외부 저장소에 파일 읽기

플러터(Flutter)를 사용하여 모바일 앱을 개발할 때, 종종 앱 외부 저장소에 있는 파일을 읽어야 할 때가 있습니다. 예를 들어, 사용자가 저장한 설정 파일이나 이미지 파일을 읽어와야 할 때, 앱 외부 저장소에 접근하여 해당 파일을 읽을 수 있어야 합니다.

파일 시스템 라이브러리 가져오기

플러터에서 앱 외부 저장소에 접근하기 위해 파일 시스템 라이브러리를 가져와야 합니다. path_provider라는 라이브러리를 사용하여 파일 시스템에 접근할 수 있습니다. 이 라이브러리를 사용하기 위해 pubspec.yaml 파일에 다음과 같이 라이브러리를 추가해 주세요:

dependencies:
  path_provider: ^2.0.1

앱 외부 저장소에서 파일 읽기

앱 외부 저장소에서 파일을 읽기 위해서는 다음과 같은 단계를 따라야 합니다:

  1. import 문을 사용하여 dart:iopackage:path_provider/path_provider.dart를 가져옵니다.
    import 'dart:io';
    import 'package:path_provider/path_provider.dart';
    
  2. getExternalStorageDirectory 함수를 사용하여 앱 외부 저장소의 디렉토리 경로를 가져옵니다. 이 함수는 Future<Directory>을 반환합니다.
    Directory directory = await getExternalStorageDirectory();
    
  3. File 클래스를 사용하여 파일을 읽을 준비를 합니다. File 생성자에는 파일의 경로를 인자로 전달해야 합니다.
    File file = File('${directory.path}/filename.txt');
    
  4. readAsString 메서드를 사용하여 파일의 내용을 읽습니다. 이 메서드는 Future<String>을 반환합니다.
    String contents = await file.readAsString();
    

여기에는 예제 코드가 있습니다.

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() {
  readFile();
}

void readFile() async {
  Directory directory = await getExternalStorageDirectory();
  File file = File('${directory.path}/filename.txt');
  
  if (await file.exists()) {
    String contents = await file.readAsString();
    print(contents);
  } else {
    print('File not found');
  }
}

위 예제 코드는 앱 외부 저장소에서 filename.txt 파일을 읽고 그 내용을 출력하는 간단한 예제입니다. 이를 실행하기 위해선 pubspec.yaml에서 path_provider 라이브러리를 추가해야 합니다.

플러터를 사용하여 앱 외부 저장소에 있는 파일을 읽는 방법에 대해 알아보았습니다. 이를 응용하여 필요한 파일을 읽어와서 앱에서 활용할 수 있습니다.