[flutter] 플러터에서 앱 외부 저장소에 파일 읽기
플러터(Flutter)를 사용하여 모바일 앱을 개발할 때, 종종 앱 외부 저장소에 있는 파일을 읽어야 할 때가 있습니다. 예를 들어, 사용자가 저장한 설정 파일이나 이미지 파일을 읽어와야 할 때, 앱 외부 저장소에 접근하여 해당 파일을 읽을 수 있어야 합니다.
파일 시스템 라이브러리 가져오기
플러터에서 앱 외부 저장소에 접근하기 위해 파일 시스템 라이브러리를 가져와야 합니다. path_provider
라는 라이브러리를 사용하여 파일 시스템에 접근할 수 있습니다. 이 라이브러리를 사용하기 위해 pubspec.yaml
파일에 다음과 같이 라이브러리를 추가해 주세요:
dependencies:
path_provider: ^2.0.1
앱 외부 저장소에서 파일 읽기
앱 외부 저장소에서 파일을 읽기 위해서는 다음과 같은 단계를 따라야 합니다:
import
문을 사용하여dart:io
와package:path_provider/path_provider.dart
를 가져옵니다.import 'dart:io'; import 'package:path_provider/path_provider.dart';
getExternalStorageDirectory
함수를 사용하여 앱 외부 저장소의 디렉토리 경로를 가져옵니다. 이 함수는Future<Directory>
을 반환합니다.Directory directory = await getExternalStorageDirectory();
File
클래스를 사용하여 파일을 읽을 준비를 합니다.File
생성자에는 파일의 경로를 인자로 전달해야 합니다.File file = File('${directory.path}/filename.txt');
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
라이브러리를 추가해야 합니다.
플러터를 사용하여 앱 외부 저장소에 있는 파일을 읽는 방법에 대해 알아보았습니다. 이를 응용하여 필요한 파일을 읽어와서 앱에서 활용할 수 있습니다.