读写File

此博客为转载内容,转载自https://www.cnblogs.com/braveheart007/p/10835692.html ,涉及移动开发领域。
在initstat里面将文件里面存储的数值赋值给要显示的组件,这样可以在App打开时就恢复上次App存储的数据;
每次数值变化就随之存储到文件;
下面是一个完整的示例:
import 'package:flutter/material.dart';

import 'dart:io';
import 'dart:async';
import 'package:path_provider/path_provider.dart';

void main()=>runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}

class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
int count=0;
File file;

Future<File> getAppLocation()async{
String path=(await getApplicationDocumentsDirectory()).path;
path='$path/count.txt';
File file=File(path);
return file;
}

Future writeCountToFile()async{
await (await getAppLocation()).writeAsString('$count');
}

Future<String> readCountFromFile()async{
String value = await (await getAppLocation()).readAsString();
return value;
}
@override
void initState() {
// TODO: implement initState
readCountFromFile().then((value){
setState(() {
count=int.parse(value);
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('勇往直前'),),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: (){
setState(() {
count++;
});
writeCountToFile();
}),
body: Center(
child: ActionChip(
label: Text('点击了$count次'),
onPressed: (){
setState(() {
count++;
});
writeCountToFile();
},
),
),
);
}
}

转载于:https://www.cnblogs.com/braveheart007/p/10835692.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值