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

플러터(Flutter)는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, 강력한 기능과 성능을 제공합니다. 이번 글에서는 플러터에서 사용자의 앱 데이터 디렉토리에 파일을 저장하는 방법을 알아보겠습니다.

데이터 디렉토리 가져오기

플러터에서는 데이터를 저장하기 위해 path_provider 패키지를 사용할 수 있습니다. 이 패키지를 통해 앱 데이터 디렉토리의 경로를 가져올 수 있습니다. 먼저, pubspec.yaml 파일에 path_provider 패키지 의존성을 추가해주세요.

dependencies:
  path_provider: ^2.0.2

그리고 다음과 같이 패키지를 가져옵니다.

import 'package:path_provider/path_provider.dart';

파일 저장하기

앱 데이터 디렉토리에 파일을 저장하기 위해서는 다음과 같은 단계를 따라야 합니다.

  1. 앱 데이터 디렉토리의 경로를 가져옵니다.
  2. 파일 이름을 지정합니다.
  3. 파일 객체를 생성하고 내용을 작성합니다.
  4. 파일을 앱 데이터 디렉토리에 저장합니다.
Future<String> getFilePath() async {
  // 앱 데이터 디렉토리의 경로를 가져옴
  Directory appDir = await getApplicationDocumentsDirectory();
  String filePath = '${appDir.path}/myFile.txt';
  return filePath;
}

void saveFile() async {
  String filePath = await getFilePath();
  File file = File(filePath);
  
  // 파일에 내용 작성
  file.writeAsString('Hello, Flutter!');
}

void main() {
  saveFile();
}

위의 코드에서는 getFilePath() 함수를 통해 앱 데이터 디렉토리의 경로를 가져오고, saveFile() 함수에서는 해당 경로에 myFile.txt라는 이름의 파일을 생성하고 내용을 작성합니다. 마지막으로 main() 함수를 호출하여 파일을 저장합니다.

파일 읽기

저장된 파일을 읽기 위해서는 readAsString() 메소드를 사용합니다. 다음은 파일을 읽는 예제 코드입니다.

void readFile() async {
  String filePath = await getFilePath();
  File file = File(filePath);
  
  String contents = await file.readAsString();
  print(contents);
}

위의 코드에서는 readFile() 함수를 호출하여 파일을 읽고, print() 함수를 사용하여 파일 내용을 출력합니다.

결론

위의 예제를 따라하면 플러터에서 앱 데이터 디렉토리에 파일을 저장하고 읽을 수 있습니다. 이는 사용자의 중요한 데이터를 안전하게 저장하고 유지할 수 있는 좋은 방법입니다. 플러터의 다른 기능과 함께 사용하면 더욱 강력한 애플리케이션을 개발할 수 있습니다.

참고 자료