본문 바로가기
프로그래밍/Dart

[Dart] 8. Dart의 "파일 입출력"

by iwbap 2024. 6. 19.
728x90
 

Dart 학습: 파일 입출력

파일 입출력은 프로그램이 파일과 상호작용하여 데이터를 읽고 쓰는 중요한 기능입니다. Dart에서는 dart:io 라이브러리를 사용하여 파일과 디렉터리를 쉽게 관리할 수 있습니다. 이번 글에서는 파일 읽기와 쓰기, 디렉터리 생성, 삭제, 이동에 대해 알아보겠습니다.


1. 파일 읽기와 쓰기: 파일을 읽고 쓰는 방법

Dart에서 파일을 읽고 쓰는 방법을 살펴보겠습니다.

 

파일 쓰기 : 파일에 데이터를 쓰기 위해 File 클래스와 writeAsString 메서드를 사용합니다.

 

[dart]
 
import 'dart:io';

void main() async {
  // 파일 객체 생성
  File file = File('example.txt');

  // 파일에 데이터 쓰기
  await file.writeAsString('Hello, Dart!\n');

  // 파일에 데이터 추가 쓰기
  await file.writeAsString('Welcome to file I/O in Dart.', mode: FileMode.append);

  print('파일 쓰기 완료');
}
 

위의 예제에서 writeAsString 메서드를 사용하여 파일에 문자열을 씁니다. FileMode.append 모드를 사용하면 기존 파일 내용 뒤에 데이터를 추가할 수 있습니다.

 

 

파일 읽기 : 파일에서 데이터를 읽기 위해 File 클래스와 readAsString 메서드를 사용합니다.

 

[dart]
 
import 'dart:io';

void main() async {
  // 파일 객체 생성
  File file = File('example.txt');

  // 파일에서 데이터 읽기
  String contents = await file.readAsString();

  print('파일 내용:');
  print(contents);
}
 

위의 예제에서 readAsString 메서드를 사용하여 파일의 내용을 문자열로 읽습니다.


2. 디렉터리 관리: 디렉터리 생성, 삭제, 이동

Dart에서는 Directory 클래스를 사용하여 디렉터리를 생성, 삭제, 이동할 수 있습니다.

 

디렉터리 생성 : 디렉터리를 생성하기 위해 Directory 클래스와 create 메서드를 사용합니다.

 

[dart]
 
import 'dart:io';

void main() async {
  // 디렉터리 객체 생성
  Directory dir = Directory('example_dir');

  // 디렉터리 생성
  if (!await dir.exists()) {
    await dir.create();
    print('디렉터리 생성 완료');
  } else {
    print('디렉터리가 이미 존재합니다');
  }
}
 

위의 예제에서 create 메서드를 사용하여 디렉터리를 생성합니다. 디렉터리가 이미 존재하는지 확인하기 위해 exists 메서드를 사용합니다.

 

 

디렉터리 삭제 : 디렉터리를 삭제하기 위해 Directory 클래스와 delete 메서드를 사용합니다.

 

[dart]
 
import 'dart:io';

void main() async {
  // 디렉터리 객체 생성
  Directory dir = Directory('example_dir');

  // 디렉터리 삭제
  if (await dir.exists()) {
    await dir.delete();
    print('디렉터리 삭제 완료');
  } else {
    print('삭제할 디렉터리가 존재하지 않습니다');
  }
}
 

위의 예제에서 delete 메서드를 사용하여 디렉터리를 삭제합니다.

 

 

디렉터리 이동 : 디렉터리를 이동하기 위해 Directory 클래스와 rename 메서드를 사용합니다.

 

[dart]
 
import 'dart:io';

void main() async {
  // 디렉터리 객체 생성
  Directory dir = Directory('example_dir');
  Directory newDir = Directory('new_example_dir');

  // 디렉터리 이동
  if (await dir.exists()) {
    await dir.rename(newDir.path);
    print('디렉터리 이동 완료');
  } else {
    print('이동할 디렉터리가 존재하지 않습니다');
  }
}
 

위의 예제에서 rename 메서드를 사용하여 디렉터리를 새 위치로 이동합니다.


이 글에서는 Dart의 파일 입출력에 대해 알아보았습니다. 파일 읽기와 쓰기, 디렉터리 생성, 삭제, 이동을 이해하고 활용하면 파일 시스템과 상호작용하는 프로그램을 작성할 수 있습니다. 다음 단계에서는 라이브러리와 패키지에 대해 학습해보세요. Happy Coding!

728x90