在CentOS系统中,Flutter数据存储可以通过多种方式实现,包括使用本地文件、SharedPreferences、SQLite数据库等。以下是一些基本的操作步骤:
Flutter提供了dart:io
库来处理文件操作。
import 'dart:io';
Future<void> writeFile(String filePath, String content) async {
final file = File(filePath);
await file.writeAsString(content);
}
Future<String> readFile(String filePath) async {
final file = File(filePath);
if (await file.exists()) {
return await file.readAsString();
}
return '';
}
void main() async {
String filePath = '/path/to/your/file.txt';
await writeFile(filePath, 'Hello, Flutter!');
String content = await readFile(filePath);
print(content); // 输出: Hello, Flutter!
}
shared_preferences
是一个流行的Flutter插件,用于存储简单的键值对数据。
在pubspec.yaml
文件中添加:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.15
import 'package:shared_preferences/shared_preferences.dart';
Future<void> setString(String key, String value) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString(key, value);
}
Future<String?> getString(String key) async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString(key);
}
void main() async {
await setString('name', 'John Doe');
String? name = await getString('name');
print(name); // 输出: John Doe
}
sqflite
是一个流行的Flutter插件,用于在移动设备上使用SQLite数据库。
在pubspec.yaml
文件中添加:
dependencies:
flutter:
sdk: flutter
sqflite: ^2.0.0+4
path_provider: ^2.0.2
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
Future<Database> openDatabase() async {
Directory documentsDirectory = await getApplicationDocumentsDirectory();
String path = join(documentsDirectory.path, 'my_database.db');
return await openDatabase(path,
version: 1, onCreate: (Database db, int version) async {
await db.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL
)
''');
});
}
Future<void> insertUser(Database db, String name, String email) async {
await db.insert('users', {'name': name, 'email': email});
}
Future<List<Map<String, dynamic>>> queryUsers(Database db) async {
return await db.query('users');
}
void main() async {
Database db = await openDatabase();
await insertUser(db, 'John Doe', 'john@example.com');
List<Map<String, dynamic>> users = await queryUsers(db);
print(users); // 输出: [{id: 1, name: John Doe, email: john@example.com}]
}
根据你的需求,可以选择适合的数据存储方式。对于简单的键值对数据,SharedPreferences
是一个不错的选择;对于复杂的数据结构,SQLite数据库更为合适。希望这些示例能帮助你在CentOS系统中进行Flutter数据存储操作。