[flutter] 플러터에서 path_provider를 활용한 파일 쓰기 실습
개요
플러터는 크로스 플랫폼 앱 개발을 위한 프레임워크로, 안드로이드와 iOS 모두에서 동작하는 앱을 만들 수 있습니다. 이번 포스트에서는 플러터에서 파일을 쓰기 위해 path_provider 패키지를 사용하는 방법에 대해 알아보겠습니다.
1. path_provider 패키지 추가하기
우선, pubspec.yaml 파일에 path_provider 패키지를 추가해야 합니다. 아래와 같이 dependencies 영역에 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
path_provider: ^2.0.2
2. 파일 쓰기 코드 작성하기
패키지 추가 후, 파일을 쓰기 위한 코드를 작성해보겠습니다.
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'File Writing Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
TextEditingController _controller = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('File Writing Demo'),
),
body: Container(
padding: EdgeInsets.all(16.0),
child: Column(
children: [
TextField(
controller: _controller,
decoration: InputDecoration(
labelText: 'Enter text to write to file',
),
),
SizedBox(height: 16.0),
ElevatedButton(
onPressed: () {
_writeToFile(_controller.text);
},
child: Text('Write to File'),
),
],
),
),
);
}
Future<void> _writeToFile(String text) async {
try {
Directory directory = await getApplicationDocumentsDirectory();
File file = File('${directory.path}/my_file.txt');
await file.writeAsString(text);
print('File written successfully');
} catch (e) {
print('Failed to write file: $e');
}
}
}
3. 실행 및 결과 확인
구현한 앱을 실행해볼 차례입니다. 먼저 flutter SDK가 설치되어 있는지 확인하고, 터미널에서 flutter run
명령어를 실행합니다. 앱이 시뮬레이터 또는 실제 디바이스에 설치되고 실행되면, 텍스트 필드에 원하는 내용을 입력한 후 ‘Write to File’ 버튼을 눌러 파일에 쓰기를 수행합니다.
4. 결론
위의 코드를 통해 플러터에서 path_provider 패키지를 사용하여 파일 쓰기를 수행하는 방법에 대해 알아보았습니다. 이를 응용하여 파일 읽기, 파일 삭제 등 다양한 파일 관련 작업을 수행할 수 있습니다.