Skip to Content
Dart📘 Ngôn ngữ DartĐọc và Ghi File

Đọc và Ghi File trong Dart

1. Giới thiệu

Dart sử dụng thư viện dart:io để làm việc với file system.

2. Import và tạo File object

import 'dart:io'; void main() { var file = File('example.txt'); print(file.path); }

3. Ghi file đồng bộ

import 'dart:io'; void main() { var file = File('test.txt'); // Ghi string file.writeAsStringSync('Hello, World!'); // Ghi với mode append file.writeAsStringSync('\nNew line', mode: FileMode.append); // Ghi bytes file.writeAsBytesSync([72, 101, 108, 108, 111]); }

4. Ghi file bất đồng bộ

import 'dart:io'; Future<void> main() async { var file = File('test.txt'); await file.writeAsString('Hello, Dart!'); print('File written successfully'); }

5. Đọc file đồng bộ

import 'dart:io'; void main() { var file = File('test.txt'); // Đọc toàn bộ string String content = file.readAsStringSync(); print(content); // Đọc từng dòng List<String> lines = file.readAsLinesSync(); for (var line in lines) { print(line); } // Đọc bytes List<int> bytes = file.readAsBytesSync(); print(bytes); }

6. Đọc file bất đồng bộ

import 'dart:io'; Future<void> main() async { var file = File('test.txt'); String content = await file.readAsString(); print(content); List<String> lines = await file.readAsLines(); lines.forEach(print); }

7. Kiểm tra file tồn tại

import 'dart:io'; void main() { var file = File('test.txt'); if (file.existsSync()) { print('File exists'); print('Size: ${file.lengthSync()} bytes'); print('Modified: ${file.lastModifiedSync()}'); } else { print('File does not exist'); } }

8. Làm việc với Directory

import 'dart:io'; void main() { var dir = Directory('my_folder'); // Tạo directory if (!dir.existsSync()) { dir.createSync(); } // Liệt kê files dir.listSync().forEach((entity) { if (entity is File) { print('File: ${entity.path}'); } else if (entity is Directory) { print('Dir: ${entity.path}'); } }); }

9. Xử lý lỗi

import 'dart:io'; void main() { var file = File('nonexistent.txt'); try { var content = file.readAsStringSync(); print(content); } on FileSystemException catch (e) { print('Error: ${e.message}'); print('Path: ${e.path}'); } }

10. Stream đọc file lớn

import 'dart:io'; import 'dart:convert'; Future<void> main() async { var file = File('large_file.txt'); await for (var line in file.openRead() .transform(utf8.decoder) .transform(LineSplitter())) { print(line); } }

📝 Tóm tắt

  • Import dart:io để làm việc với files
  • Sync methods cho đồng bộ
  • await methods cho bất đồng bộ
  • File cho files, Directory cho folders
  • Stream để đọc file lớn hiệu quả
  • Try-catch cho xử lý lỗi
Last updated on