[flutter] 플러터에서 앱 라이브러리 디렉토리에 파일 저장하기

플러터는 크로스 플랫폼 앱 개발 프레임워크로, 다양한 디바이스에서 동작하는 앱을 개발할 수 있습니다. 파일 시스템에 엑세스하여 파일을 저장하고 불러오는 기능은 앱 개발에서 자주 사용되는 핵심 기능 중 하나입니다. 이번 글에서는 플러터에서 앱 라이브러리 디렉토리에 파일을 저장하는 방법에 대해 알아보겠습니다.

1. path_provider 패키지 설치

먼저, 파일 시스템에 엑세스하기 위해 path_provider 패키지를 설치해야 합니다. pubspec.yaml 파일에서 dependencies 섹션에 아래와 같이 추가해주세요.

dependencies:
  path_provider: ^2.3.0

설치를 완료하기 위해 터미널에서 다음 명령어를 실행해주세요.

flutter pub get

2. 파일 저장하기

이제 파일을 저장하기 위해 앱 라이브러리 디렉토리 경로를 얻어와야 합니다. path_provider 패키지의 getApplicationDocumentsDirectory() 메서드를 사용하면 됩니다.

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

Future<File> saveFile(String fileName, String content) async {
  final directory = await getApplicationDocumentsDirectory();
  final file = File('${directory.path}/$fileName');
  
  return file.writeAsString(content);
}

위 코드에서 saveFile() 함수는 파일 이름과 내용을 매개변수로 받아 앱 라이브러리 디렉토리에 파일을 저장합니다. getApplicationDocumentsDirectory() 메서드로 얻은 디렉토리 경로를 사용하여 File() 객체를 생성하고 writeAsString() 메서드로 파일을 저장합니다.

3. 파일 불러오기

저장한 파일을 불러오기 위해서는 파일 경로를 알고 있어야 합니다. 아래와 같이 파일 이름을 매개변수로 받아서 파일을 불러올 수 있는 함수를 작성해보겠습니다.

Future<String> loadFile(String fileName) async {
  final directory = await getApplicationDocumentsDirectory();
  final file = File('${directory.path}/$fileName');
  
  return file.readAsString();
}

위 코드에서 loadFile() 함수는 파일 이름을 매개변수로 받아 해당 파일을 불러옵니다. 앞서와 같이 getApplicationDocumentsDirectory() 메서드로 얻은 디렉토리 경로와 파일 이름을 조합하여 File() 객체를 생성하고 readAsString() 메서드로 파일을 읽어옵니다.

결론

이번 글에서는 플러터에서 앱 라이브러리 디렉토리에 파일을 저장하고 불러오는 방법에 대해 알아보았습니다. path_provider 패키지를 사용하여 플러터 앱에서 파일 시스템에 엑세스할 수 있습니다. 파일 저장 및 불러오기는 앱에서 중요한 동작이므로 활용에 유의해야 합니다.