[Flutter] 어플리케이션 내부 DB 관리 2: csv, external_path(개발 과정)

김민서·2023년 9월 15일
0

가림 치료 앱 개발

목록 보기
5/6

1편에서 이미 언급했듯이, 이렇게 저장한 데이터베이스를 CSV 파일로 추출하여 사용자 기기(ex.핸드폰)에서 직접 접근할 수 있도록 해야 했다. 그러기 위해선 외부 저장소에 접근하는 것이 필요했다.

이를 위해 앞서 만든 database 디렉토리에 externalStorageHelper.dart 라는 이름의 파일을 하나 생성했다. 파일에 ExternalStorageHelper 클래스를 생성했다.

Android/iOS 저장소 관련 정리한 글에서 언급한 것처럼 Android/iOS 별로 파일을 저장할 경로를 가져와, 여기에 파일을 하나 생성한다.

final file = File("$path/deviceName.csv");

// 해당 이름의 파일(file)이 존재하는지 확인
if (!file.existSync()) { 
  await file.create(recursive: true);
}

이렇게 생성된 해당 파일에 기록을 입력하면 된다.

file.writeAsString(csv, mode: FileMode.write);

참고로 여기서 첫번째 인자로 넘겨준 csv 파일은 String 타입이다. 이때 csv의 ListToCsvConverter 함수를 사용하여 List<List> 타입의 2차원 배열(array)을 String 타입으로 변환시켜주었다.

String csv = const ListToCsvConverter().convert(array);

0개의 댓글