[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 패키지를 사용하여 파일 쓰기를 수행하는 방법에 대해 알아보았습니다. 이를 응용하여 파일 읽기, 파일 삭제 등 다양한 파일 관련 작업을 수행할 수 있습니다.

참고 자료