广告
返回顶部
首页 > 资讯 > 精选 >Flutter怎么读写文本文件
  • 222
分享到

Flutter怎么读写文本文件

2023-06-30 00:06:07 222人浏览 薄情痞子
摘要

这篇文章主要介绍“Flutter怎么读写文本文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么读写文本文件”文章能帮助大家解决问题。介绍文本文件(具有 .txt扩展名)广泛用于持久

这篇文章主要介绍“Flutter怎么读写文本文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么读写文本文件”文章能帮助大家解决问题。

介绍

文本文件(具有 .txt扩展名)广泛用于持久存储信息,从数字数据到长文本。今天,我将介绍 2 个使用此文件类型的 Flutter 应用程序示例。

第一个示例快速而简单。它仅使用 rootBundle(来自 services.dart)从 assets 文件夹(或根项目中的另一个文件夹)中的文本加载内容,然后将结果输出到屏幕上。当您只需要读取数据而不需要写入数据时,这很有用。

第二个例子稍微复杂一点。它不仅可以读取用户输入的内容,还可以将用户输入的内容写入文本文件。您将学习如何使用File 异步方法, 包括readAsString和writeAsString。

示例 1:加载内容

预览

此示例包含一个文本小部件和一个浮动按钮。当这个按钮被按下时,函数 _loadData将被触发并从文件中加载内容。

将文本文件添加到您的项目中

在项目根目录的资产文件夹中创建一个名为data.txt的新文本文件(如果尚不存在,则创建一个),并向其添加一些虚拟内容,如下所示:

个人简介:华为云享专家,InfoQ签约作者,51CTO博客首席体验官,专注于前端技术的分享,包括Flutter,小程序,安卓,Vuejavascript。如果你迷茫,不妨来瞅瞅码农的轨迹,

不要忘记在pubspec.yaml文件中注册assets文件夹:

flutter:  assets:    - assets/

完整代码

将以下内容添加到您的main.dart

// main.dartimport 'package:flutter/material.dart';import 'package:flutter/services.dart' show rootBundle;import 'dart:async';void main() {  runApp(MyApp());}class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      debugShowCheckedModeBanner: false,      title: '坚果',      home: HomePage(),    );  }}class HomePage extends StatefulWidget {  @override  _HomePageState createState() => _HomePageState();}class _HomePageState extends State<HomePage> {  String _data;  // This function is triggered when the user presses the floating button  Future<void> _loadData() async {    final _loadedData = await rootBundle.loadString('assets/data.txt');    setState(() {      _data = _loadedData;    });  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('坚果'),      ),      body: Center(          child: Container(              width: 300,              child: Text(_data != null ? _data : 'Nothing to show',                  style: TextStyle(fontSize: 24)))),      floatingActionButton:          FloatingActionButton(onPressed: _loadData, child: Icon(Icons.add)),    );  }}

示例 2: Reading and Writing

获取文件路径

出于安全原因,AndroidiOS 不允许我们在硬盘驱动器上的任何位置进行读写。我们需要将文本文件保存到Documents目录中,应用程序只能在该目录中访问其文件。只有在删除应用程序时才会删除这些文件。

文件目录是NSDocumentDirectory iOS和应用程序数据在Android上。要获取该目录的完整路径,我们使用path_provider包(这是 Flutter 的官方包)。

通过将path_provider及其版本添加到pubspec.yaml文件的依赖项部分来安装包,如下所示:

dependencies:  path_provider: ^2.0.8

然后运行以下命令:

flutter pub get

并找到如下路径:

import 'package:path_provider/path_provider.dart';Future<String> get _getDirPath async {  final _dir = await getApplicationDocumentsDirectory();  return _dir.path;}

示例预览

此示例应用程序有一个 TextFiled,允许用户输入他/她的姓名以写入文本文件。它还包含一个文本小部件,显示从该文件读取的名称。

完整的代码和解释

在此示例中,我们不需要手动创建文本文件并将其添加到项目中。第一次写入数据时会自动创建。

这是我们的main.dart 中的代码:

// main.dartimport 'dart:convert';import 'package:flutter/material.dart';import 'dart:async';import 'dart:io';import 'package:path_provider/path_provider.dart';void main() {  runApp(MyApp());}class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      debugShowCheckedModeBanner: false,      title: '坚果',      home: HomePage(),    );  }}class HomePage extends StatefulWidget {  @override  _HomePageState createState() => _HomePageState();}class _HomePageState extends State<HomePage> {  // This will be displayed on the screen  String _content;  // Find the Documents path  Future<String> _getDirPath() async {    final _dir = await getApplicationDocumentsDirectory();    return _dir.path;  }  // This function is triggered when the "Read" button is pressed  Future<void> _readData() async {    final _dirPath = await _getDirPath();    final _myFile = File('$_dirPath/data.txt');    final _data = await _myFile.readAsString(encoding: utf8);    setState(() {      _content = _data;    });  }  // TextField controller  final _textController = TextEditinGController();  // This function is triggered when the "Write" buttion is pressed  Future<void> _writeData() async {    final _dirPath = await _getDirPath();        final _myFile = File('$_dirPath/data.txt');    // If data.txt doesn't exist, it will be created automatically    await _myFile.writeAsString(_textController.text);    _textController.clear();  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('坚果'),      ),      body: Padding(        padding: const EdgeInsets.all(20),        child: Column(          children: [            TextField(              controller: _textController,              decoration: InputDecoration(labelText: 'Enter your name'),            ),            ElevatedButton(              child: Text('Save to file'),              onPressed: _writeData,            ),            SizedBox(              height: 150,            ),            Text(                _content != null                    ? _content                    : 'Press the button to load your name',                style: TextStyle(fontSize: 24, color: Colors.pink)),            ElevatedButton(              child: Text('Read my name from the file'),              onPressed: _readData,            )          ],        ),      ),    );  }}

关于“Flutter怎么读写文本文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Flutter怎么读写文本文件

本文链接: https://www.lsjlt.com/news/326868.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter怎么读写文本文件
    这篇文章主要介绍“Flutter怎么读写文本文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么读写文本文件”文章能帮助大家解决问题。介绍文本文件(具有 .txt扩展名)广泛用于持久...
    99+
    2023-06-30
  • 详解Flutter如何读写文本文件
    目录介绍示例 1:加载内容预览完整代码示例 2: Reading and Writing获取文件路径示例预览完整的代码和解释介绍 文本文件(具有 .txt扩展名)广泛用于持久存储信息...
    99+
    2022-11-13
  • VB.NET怎么读写文本文件
    这篇文章主要介绍VB.NET怎么读写文本文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!为了把text保存到文件,创建一个基于FileStream的StreamReader对象,然后调用Write方法把需要保存的t...
    99+
    2023-06-17
  • C++中怎么读写文本文件
    C++中怎么读写文本文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C++读写文本文件代码示例如下:#include < iostr...
    99+
    2023-06-17
  • VB.NET中怎么读写文本文件
    本篇文章为大家展示了VB.NET中怎么读写文本文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。为了把text保存到文件,创建一个基于FileStream的StreamReader对象,然后调用Wr...
    99+
    2023-06-17
  • flutter:文件系统目录、文件读写
    参考 参考:老孟 文件存储和网络请求 数据存储 Dart的 IO 库包含了文件读写的相关类,它属于 Dart 语法标准的一部分,所以通过 Dart IO 库,无论是 Dart VM 下的脚本还是 Fl...
    99+
    2023-10-27
    flutter ios android
  • VB.NET文件对象怎么读写文本文件
    本篇内容主要讲解“VB.NET文件对象怎么读写文本文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VB.NET文件对象怎么读写文本文件”吧!我们编程人员在日常的工作中往往都会面对多种编程语言的...
    99+
    2023-06-17
  • VB.NET如何读写文本文件
    小编给大家分享一下VB.NET如何读写文本文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!工作需要,小编需要使用VB.NET读写文本文件操作。编程需要完成如下工...
    99+
    2023-06-17
  • VB.NET中怎么实现读写文本文件操作
    VB.NET中怎么实现读写文本文件操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。VB.NET读写文本文件为了把text保存到文件,创建一个基于FileStream的Stre...
    99+
    2023-06-17
  • Java怎么使用字符流读写非文本文件
    今天小编给大家分享一下Java怎么使用字符流读写非文本文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用字符流读取文件(...
    99+
    2023-07-06
  • nodejs怎么读取文件和写文件
    本篇内容介绍了“nodejs怎么读取文件和写文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • java读写文本文件的基本步骤是什么
    Java读写文本文件的基本步骤是:1. 创建一个`File`对象,用于表示要读写的文件。2. 使用`FileReader`或`Fil...
    99+
    2023-09-22
    java
  • 如何使用C#读写文本文件
    这篇文章将为大家详细讲解有关如何使用C#读写文本文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。读取txt文件 如果你要读取的文件内容不是很多,可以使用 File.ReadAllText(...
    99+
    2023-06-15
  • java读写文本文件的步骤是什么
    Java读写文本文件的步骤如下:1. 首先,需要创建一个File对象,指定要读写的文件的路径和文件名。```javaFile fil...
    99+
    2023-08-24
    java
  • python-yml文件读写与xml文件读写
    目录一、python-yml文件读写更新yml的数值二、python-xml文件读写寻找 XML 节点修改 XML 数据建立 XML 结构XPath 搜索XML 排版一、python...
    99+
    2022-11-11
  • Python 文本文件与csv文件的读取与写入
    目录一、文本文件读取与写入1 读取文件的 read() 方法2 读取文件的 readline() 方法3 读取文件的 readlines() 方法4 写入文件的 write() 方法...
    99+
    2022-11-13
  • 怎么用 C++ 读写文件
    这篇文章主要讲解了“怎么用 C++ 读写文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用 C++ 读写文件”吧!在 C++ 中,对文件的读写可以通过使用输入输出流与流运算符 ...
    99+
    2023-06-15
  • Python怎么读写JSON文件
    本篇内容介绍了“Python怎么读写JSON文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JSONJSON 起源JSON 全称 Java...
    99+
    2023-06-30
  • Android怎么读写CSV文件
    小编给大家分享一下Android怎么读写CSV文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言Android读写CSV文件的相关内容,CSV也就是Comma...
    99+
    2023-05-30
    android csv文件
  • 怎么用 Bash 读写文件
    本篇内容介绍了“怎么用 Bash 读写文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!学习 Bash 读取和写入数据的不同方式,以及何时使...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作